私は持っていListView
て、ListView
データはデータベースから取得されます。横にListView
レコードを追加するボタンがあります。
ボタンを押すとダイアログが表示されます
コード :
private void bAddStudent_Click(object sender, EventArgs e) {
fAddStudent addStudent = new fAddStudent();
addStudent.ShowDialog();
}
レコードを追加すると、ダイアログにclose()
ListView が表示されます。ただし、ListView
データは更新されません。
自動更新にする方法はありますか?
編集: レコードを追加する方法は次のとおりです:
private void btnAdd_Click(object sender, EventArgs e) {
string studentID = tbStudentId.Text;
string studentName = tbStudentName.Text;
string gender = tbGender.Text;
string connectionString = "Data Source=xxx\\SQLEXPRESS;Initial Catalog=TestApplication;Integrated Security=SSPI; User ID=xxx;Password=xxx";
using (SqlConnection connection = new SqlConnection(connectionString)) {
SqlCommand cmd = new SqlCommand("INSERT INTO student (student_id, student_name, student_gender) VALUES (@studentId, @studentname, @studentGender) ");
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
cmd.Parameters.AddWithValue("@studentId", studentID);
cmd.Parameters.AddWithValue("@studentName", studentName);
cmd.Parameters.AddWithValue("@studentGender", gender);
connection.Open();
cmd.ExecuteNonQuery();
}
}
表示するためのコードListView
:
List<string> myListHeader = new List<string>(new string[] { "ID", "Name", "Gender" });
myListHeader.ForEach(name => lvStudent.Columns.Add(name));
SqlConnection UGIcon = new SqlConnection();
UGIcon.ConnectionString = "Data Source=xxx\\SQLEXPRESS;Initial Catalog=TestApplication;Integrated Security=SSPI; User ID=xxx\\user;Password=xxx";
UGIcon.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM student", UGIcon);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read()) {
ListViewItem item = new ListViewItem(dr[0].ToString());
item.SubItems.Add(dr[1].ToString());
item.SubItems.Add(dr[2].ToString());
lvStudent.Items.Add(item);
}
ノート
「データの追加」フォームはフォームの表示とは異なるため、「データの追加」フォームでListView
アクセスできませんListView