【发布时间】:2017-04-29 09:54:17
【问题描述】:
我有一个 4-5 列的 DataGridView。
DataGridView 是可编辑的。
当我在参考列中输入一个值时,它将立即填充其他值
mysql 数据库中其他单元格中的其他值。
这是我尝试过的......
private void TAB_Credit_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
try
{
if (TAB_Credit.CurrentCell.ColumnIndex == 0)
{
MySqlDataAdapter sa = new MySqlDataAdapter("SELECT * FROM table WHERE Reference='" + TAB_Credit.Rows[e.RowIndex].Cells["Reference"].Value + "'", MyConnexion);
DataTable dt2 = new DataTable();
sa.Fill(dt2);
double value = (double)TAB_Credit.Rows[e.RowIndex].Cells["Quantite"].Value * (double)TAB_Credit.Rows[e.RowIndex].Cells["PU"].Value;
TAB_Credit.Rows[e.RowIndex].Cells["Designation"].Value = dt2.Rows[0]["Designation"].ToString();
TAB_Credit.Rows[e.RowIndex].Cells["Quantite"].Value = dt2.Rows[0]["Quantite"].ToString();
TAB_Credit.Rows[e.RowIndex].Cells["PU"].Value = dt2.Rows[0]["Prix_Unitaire"].ToString();
TAB_Credit.Rows[e.RowIndex].Cells["Total"].Value = value.ToString();
}
}
catch
{ }
}
所以在数据网格中,当我在参考单元格中插入时,其他单元格中没有出现任何内容。 谢谢。
【问题讨论】:
-
第一:不要写空的try/catch块。如果发生任何错误,您将永远不会知道。删除并检查是否有任何异常。然后贴出错误信息
-
第二:如果有人在你的单元格中输入:1';DROP TABLE References;--,你认为会发生什么?不要这样做,看看这个stackoverflow.com/questions/332365/…
-
错误来了这个
double value = (double)TAB_Credit.Rows[e.RowIndex].Cells["Quantite"].Value * (double)TAB_Credit.Rows[e.RowIndex].Cells["PU"].Value;,我有这个错误:System.InvalidCastException -
因此错误与单元格中存在的无效值有关。单元格中存在哪些值?这些值是否可以转换为双精度值?
-
是的,数值是小数,比如 2500,00
标签: c# mysql datagridview