DataGrid绑定问题的经典提问(爆笑)
我的datagrid是这样的格式
编号 时间 部门编号 质量名称 质量完成值
编辑 1 2003-3-3 101 零件生产数 10000
编辑 1 2003-3-3 102 废品产生数 5
这个datagrid的名称为MyDataGrid
我用了下面的语句来处理更新代码,结果运行正常,没有出错的提示,但是就是数据没有更新,不知道为什么,请高手指教:
void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e)
{
String updateCmd = "UPDATE KEEDEE_HR SET STR_TIME = @STR_TIME, DEPT_CODE = @DEPT_CODE , QUANLITY_NAME = @QUANLITY_NAME , QUANLITY_VALUE = @QUANLITY_VALUE where id=@id ";
SqlCommand myCommand = new SqlCommand(updateCmd, myConnection);
myCommand.Parameters.Add(new SqlParameter("@STR_TIME", SqlDbType.DateTime, 8));
myCommand.Parameters.Add(new SqlParameter("@DEPT_CODE", SqlDbType.NVarChar, 40));
myCommand.Parameters.Add(new SqlParameter("@QUANLITY_NAME", SqlDbType.NVarChar, 50));
myCommand.Parameters.Add(new SqlParameter("@QUANLITY_VALUE", SqlDbType.Float, 8));
myCommand.Parameters.Add(new SqlParameter("@id", SqlDbType.Int, 4));
myCommand.Parameters["@Id"].Value = ((System.Web.UI.WebControls.TextBox)e.Item.Cells[1].Controls[0]).Text;
String[] cols = {"@STR_TIME","@DEPT_CODE","@QUANLITY_NAME","@QUANLITY_VALUE","@id"};
String colvalue;
int numCols = e.Item.Cells.Count;
for (int i=2; i<numCols; i++) //跳过第一列
{
colvalue =((System.Web.UI.WebControls.TextBox)e.Item.Cells[i].Controls[0]).Text;
myCommand.Parameters[cols[i-2]].Value = colvalue;
}
myCommand.Connection.Open();
try
{
myCommand.ExecuteNonQuery();
}
catch (SqlException exc)
{
if (exc.Number == 2627)
Message.InnerHtml = "错误:已存在具有相同主键的记录";
else
Message.InnerHtml = "错误:未能更新记录,请确保正确填写了字段";
Message.Style["color"] = "red";
}
myCommand.Connection.Close();
this.bind(); //这个函数是重新绑定的函数,没有错误
}