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

标签 c# mysql database

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

就目前情况而言,当单击上一个/下一个或第一个/最后一个浏览表中的记录时,它会将第一条记录显示为第一条记录和最后一条记录。由于某种原因,它似乎正在循环数据适配器中的第一个。我是在 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);

现在正在显示新记录。

关于c# - 在使用 C# 和 MySQL 重新启动应用程序之前,不会加载新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29286622/

相关文章:

mysql - 导入到 mySQL 后 UTF-8 字符显示不同

c# - 如何设置字体颜色?

c# - 使用 SSL 的 .net Web 服务。 wcf?

php - 设置 LAMP 服务器,phpmyadmin 出现问题“无法加载或保存配置”

php - MySQL TIMEstamp 到天、小时

database - HBase区域中的数据可以根据family:column的值手动进行排列

database - 在 REST API 中的何处存储资源 URI

c# - 不会等待从 UnhandledException 处理程序调用的异步方法

c# - 每个 C# 控制台应用程序打印 "The system cannot find the path specified"

mysql - MySQL 写入是否受表大小影响?