c# - 当datagridview数据绑定时如何编辑行
问题描述
我有datagridview是数据库的绑定表
datagridview 从数据库中加载数据
我想使用文本框从datagredview中的数据库编辑行获取数据
我正在使用此代码编辑数据
private void btn_Edit_Click(object sender, EventArgs e)
{
DataGridViewRow dr = dgvadministration.Rows[index_Row];
dr.Cells[2].Value = Convert.ToInt32(txt_Masseurs_Code.Text);
dr.Cells[4].Value = Convert.ToInt32(txt_Session_Type_Code.Text);
dr.Cells[6].Value = Convert.ToInt32(txt_C_Order_Masseurs.Text);
dr.Cells[7].Value = Convert.ToInt32(txt_Room_No.Text);
dr.Cells[8].Value = dtp_Session_Date.Text;
dr.Cells[9].Value = cbx_Session_done.Checked == true ? true : false;
dr.Cells[10].Value = txt_Session_Note.Text;
}
并index_Row
从dgvadministration_CellClick
private int index_Row;
private void dgvadministration_CellClick(object sender, DataGridViewCellEventArgs e)
{
try
{
Clear_Session_Data();
index_Row = e.RowIndex;
session_Code_Serial = Convert.ToInt32(dgvadministration.SelectedRows[0].Cells[1].Value.ToString());
txt_Masseurs_Code.Text = dgvadministration.SelectedRows[0].Cells[2].Value?.ToString();
txt_Masseurs_Name.Text = dgvadministration.SelectedRows[0].Cells[3].Value?.ToString();
txt_Session_Type_Code.Text = dgvadministration.SelectedRows[0].Cells[4].Value?.ToString();
txt_Session_Type_Name.Text = dgvadministration.SelectedRows[0].Cells[5].Value?.ToString();
txt_C_Order_Masseurs.Text = dgvadministration.SelectedRows[0].Cells[6].Value?.ToString();
txt_Room_No.Text = dgvadministration.SelectedRows[0].Cells[7].Value?.ToString();
if (dgvadministration.SelectedRows[0].Cells[8].Value != null)
{
DateTime CoStartDate = (DateTime)dgvadministration.SelectedRows[0].Cells[8].Value;
dtp_Session_Date.Text = CoStartDate.ToShortDateString();
}
DataGridViewCheckBoxCell chk_Session_Done = dgvadministration.SelectedRows[0].Cells[9] as DataGridViewCheckBoxCell;
if (Convert.ToBoolean(chk_Session_Done.Value) == true)
{
cbx_Session_done.Checked = true;
}
else
{
cbx_Session_done.Checked = false;
}
txt_Session_Note.Text = dgvadministration.SelectedRows[0].Cells[10].Value?.ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
但是dr.Cells[2].Value
是 null 和 al dr.Cells[X].Value 尽管Convert.ToInt32(txt_Masseurs_Code.Text);
不是 null 和其他文本框
请注意,在从数据库加载数据之前,当使用此代码添加行可编程性时,此代码编辑行正在工作
DataTable dt = new DataTable();
dt.Columns.Add("Session_Code");
DataRow dr = null;
for (int i = 0; i < 5; i++)
{
dr = dt.NewRow();
dr["Session_Code"] = i.ToString();
dt.Rows.Add(dr);
}
dgvadministration.DataSource = dt;
为什么会发生这种情况,我该如何编辑这一行????
解决方案
推荐阅读
- php - why not find model file in app folder and migration folder in laravel
- tkinter - 当滚动条位于用户接近一半的位置时,如何自动获取滚动条的位置,以便它可以调用其他函数?
- java - Jax-rx Starter Maven project showing error HTTP Status 404 – Not Found
- asp.net - ASP.NET Web API : JsonIgnore attribute only for set or get
- visual-studio - 从模板 Visual Studio 创建 Blazor(ASP.NET Core 托管)项目
- c++ - 编译器找不到SFML/Graphics.hpp,但是添加到includedirs
- android - Activity 销毁时,应用程序会继续上传到 Firebase 存储
- java - 如何使用 HTML 颜色编写带有 zxing 的二维码
- windows-terminal - Windows 终端预览 - 滚动浏览标签?
- sql - 我如何避免分组中的重复值?