【发布时间】:2017-11-23 13:05:35
【问题描述】:
我有一个显示数据库中所有行的列表框。 当我从列表框/数据库中编辑一行时,编辑不会显示在列表框中,直到我重新启动程序。单击“保存更改”按钮后,如何修复以使列表框随编辑更新?
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
string connectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Library;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
var query = "SELECT * FROM Author";
using (SqlCommand cmd = new SqlCommand(query, con))
{
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Author a = new Author();
a.Id = reader.GetInt32(0);
a.Name = reader.GetString(1);
a.Nationality = reader.GetString(2);
AuthorListBox.Items.Add(a.Name);
Book b = new Book();
b.BookId = reader.GetInt32(0);
//b.AuthorID = reader.GetInt32(1);
b.Title = reader.GetString(2);
BookListBox.Items.Add(b.BookId);
}
}
}
}
}
private void SaveChangesButton_Click(object sender, RoutedEventArgs e)
{
string connectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Library;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
string query = "UPDATE Author SET AuthorId = '" + this.IdTextBox.Text + "' ," +
" Name = '" + this.AuthorNameTextBox.Text + "', Nationality = '" + this.NationalityTextBox.Text +
"' WHERE AuthorId = '" + this.IdTextBox.Text + "' ";
SqlCommand command = new SqlCommand(query, connection);
command.ExecuteNonQuery();
MessageBox.Show("Updated the author");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
connection.Close();
}
}
}
【问题讨论】:
标签: c# sql database wpf listbox