我做的系统是winform形式的,我在vs2005中的 DataGridView中一共添加5列,其中有一列是空列,与数据库中的UserID字段进行绑定,并将其隐藏.
然后其余四列分别与UserName,UserSex,UserArea,UserEmail字段进行绑定.这些都是在 DataGridView的Columns属性中设置的.
现在我想删除DataGridView中的一条记录,那么我首先选中一行,然后单击"删除"按钮,原理是根据选中的记录行号,获得DataGrid对象中待删除的记录的唯一索引,并根据待删除记录的索引,找到对应记录的UserID值,来删除.但以下代码执行的时候出现错误,提示找不到UserID,各位朋友帮帮我该怎么解决啊?
以下是代码:
//删除联系人名单
private void button4_Click(object sender, EventArgs e)
{
//获得选中的索引
int index = UserDgv.SelectedRows[0].Index;
//初始化SqlCommand对象
SqlCommand newCmd = new SqlCommand();
//根据隐藏列UserID删除记录
newCmd.CommandText = "DELETE FROM UserInfor WHERE UserID=@UserID";
//填充参数类型和参数值
newCmd.Parameters.Add("UserID", SqlDbType.Int);
newCmd.Parameters["UserID"].Value = UserDgv.Rows[index].Cells["UserID"].Value.ToString();
//执行Delete语句
DBManage.ExecuteNonQuerySql(newCmd);
FillUserInfor(); }
然后其余四列分别与UserName,UserSex,UserArea,UserEmail字段进行绑定.这些都是在 DataGridView的Columns属性中设置的.
现在我想删除DataGridView中的一条记录,那么我首先选中一行,然后单击"删除"按钮,原理是根据选中的记录行号,获得DataGrid对象中待删除的记录的唯一索引,并根据待删除记录的索引,找到对应记录的UserID值,来删除.但以下代码执行的时候出现错误,提示找不到UserID,各位朋友帮帮我该怎么解决啊?
以下是代码:
//删除联系人名单
private void button4_Click(object sender, EventArgs e)
{
//获得选中的索引
int index = UserDgv.SelectedRows[0].Index;
//初始化SqlCommand对象
SqlCommand newCmd = new SqlCommand();
//根据隐藏列UserID删除记录
newCmd.CommandText = "DELETE FROM UserInfor WHERE UserID=@UserID";
//填充参数类型和参数值
newCmd.Parameters.Add("UserID", SqlDbType.Int);
newCmd.Parameters["UserID"].Value = UserDgv.Rows[index].Cells["UserID"].Value.ToString();
//执行Delete语句
DBManage.ExecuteNonQuerySql(newCmd);
FillUserInfor(); }
解决方案 »
- c# 操作SMTP服务器
- 委托小问题
- 关于正则表达式的问题
- 用checkbox绑定Dataset, 遇到库中0或1,怎么转换?
- 有没有什么工具能把.net的程序编译成机器语言,而不是msil.
- 急需请教版主和各兄弟们,我在一个页面中保存的Cookie值,怎么下次再进入页面时读不到该Cookie的值啊,请看正文
- c#怎么解析soap调用webservice返回的xml格式的字符串
- 找人做毕业设计啊。流动人口数据仓库智能挖掘,会做的来啊,救命啊!!
- 一句"public virtual Department Department "是什么意思,请前辈帮看下!先感谢了!
- 请问,如何用.Net实现枚举局域网中所有的SQL实例。
- 怎样将C#程序编译成机器码
- c#事件与线程
{
//获得选中的索引
string UserID = UserDgv.SelectedRows[0].Cells["UserID(这个是你datagridview中那个实际的列名)"]
//初始化SqlCommand对象
SqlCommand newCmd = new SqlCommand();
//根据隐藏列UserID删除记录
newCmd.CommandText = "DELETE FROM UserInfor WHERE UserID= '"+ UserID +"'";
//执行Delete语句
DBManage.ExecuteNonQuerySql(newCmd);
FillUserInfor(); }
private void button4_Click(object sender, EventArgs e)
{
//获得选中的索引
string UserID = UserDgv.SelectedRows[0].Cells["UserID(这个是你datagridview中那个实际的列名)"].value.tostring();
//初始化SqlCommand对象
SqlCommand newCmd = new SqlCommand();
//根据隐藏列UserID删除记录
newCmd.CommandText = "DELETE FROM UserInfor WHERE UserID= '"+ UserID +"'";
//执行Delete语句
DBManage.ExecuteNonQuerySql(newCmd);
FillUserInfor(); }
写在LOAD中. protected void btnDel_Click(object sender, EventArgs e)
{
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
if (((CheckBox)this.GridView1.Rows[i].Cells[0].FindControl("chkSelect")).Checked)
{
OA_Business.Employer.Employer epy = new OA_Business.Employer.Employer();
epy.E_ID = int.Parse(GridView1.DataKeys[i].Value.ToString());
epy.E_Del();
}
}
BindEmployer();
}