Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在应用程序使用C和MySQL重新启动之前,不会加载新记录_C#_Mysql_Database - Fatal编程技术网

C# 在应用程序使用C和MySQL重新启动之前,不会加载新记录

C# 在应用程序使用C和MySQL重新启动之前,不会加载新记录,c#,mysql,database,C#,Mysql,Database,我正在使用一个MySQL数据库和一个C应用程序。我将应用程序设置为使用表单添加新记录并显示现有记录。插入记录后,表单应重新从数据库中获取记录,并在表单中显示表中的最后一条记录,即新创建的记录 目前,当单击“上一条/下一条”或“第一条/最后一条”浏览表中的记录时,它将第一条记录显示为第一条和最后一条记录。出于某种原因,它似乎在循环数据适配器中的第一个。我对使用MySQL和C是新手。有没有一种方法可以在不重新启动应用程序的情况下重置或更新MySQL 为了填充表单,它调用与表单加载相同的方法,连接到数

我正在使用一个MySQL数据库和一个C应用程序。我将应用程序设置为使用表单添加新记录并显示现有记录。插入记录后,表单应重新从数据库中获取记录,并在表单中显示表中的最后一条记录,即新创建的记录

目前,当单击“上一条/下一条”或“第一条/最后一条”浏览表中的记录时,它将第一条记录显示为第一条和最后一条记录。出于某种原因,它似乎在循环数据适配器中的第一个。我对使用MySQL和C是新手。有没有一种方法可以在不重新启动应用程序的情况下重置或更新MySQL

为了填充表单,它调用与表单加载相同的方法,连接到数据库,获取行数,填充数据适配器,填充文本框,然后关闭到数据库的连接。不知道为什么它不能在第二时间抓住一切,等等

当用户单击“添加”以添加新记录时:

//Recounts rows in table in the table
numberOfRows = GetRowCount("tblTable");

//Resets displayedRow counter and updates form data to show new record
displayedRow = numberOfRows - 1;
UpdateFormData(displayedRow);
表格上的记录数正在正确更新,所以我知道这一切正常

然后在UpdateFormData方法中:

cmd = connection.CreateCommand();
cmd.CommandText = "SELECT * FROM `tblTable`;";
cmd.ExecuteNonQuery();

//Fill DataAdapter
using (tblTableDataAdapter = new MySqlDataAdapter(cmd))
{
   tblTableDataAdapter.Fill(tblTableDataTable);
}

tblTableDataAdapter = new MySqlDataAdapter(cmd.CommandText, connection);
       tblTableDataAdapter.Fill(tblTableDataSet);

//Displays row data in textbox
textBox1.Text = tblTableSet.Tables[0].Rows[displayedRow]["FirstName"].ToString();
       textBox2.Text = tblTablefDataSet.Tables[0].Rows[displayedRow]["LastName"].ToString();
       textBox3.Text = tblTableDataSet.Tables[0].Rows[displayedRow]["StaffAddress"].ToString();
       textBox4.Text = tblStaffDataSet.Tables[0].Rows[displayedRow]["PostalCode"].ToString();
       textBox5.Text = tblTableDataSet.Tables[0].Rows[rowNumber]["City"].ToString();
       textBox6.Text = tblTableDataSet.Tables[0].Rows[rowNumber]["Phone"].ToString();
       textBox7.Text = tblTableDataSet.Tables[0].Rows[rowNumber]["Email"].ToString();

好吧,我解决了问题。在重新填充数据适配器之前,需要重置数据集。已将更新方法更改为包括:

tblTableDataSet.Reset();
tblTableDataAdapter = new MySqlDataAdapter(cmd.CommandText, connection);
tblTableDataAdapter.Fill(tblTableDataSet);

现在它显示了新记录。

在更新值之后,您必须重新填充表格,我在更新方法的第8行,显然在第12行。换一条线会更好吗?