如何解决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,并且为所有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;
为什么会发生这种情况,以及如何编辑此行????
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。