private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string str="DELETE from employee where e_id = @Id";
sqlDeleteCommand1=new SqlCommand(str,sqlConnection1);
sqlDeleteCommand1.Parameters.Add(new SqlParameter("@Id",SqlDbType.NVarChar,11));
sqlDeleteCommand1.Parameters["@Id"].Value=this.DataGrid1.DataKeys[(int)e.Item.ItemIndex];
sqlDeleteCommand1.Connection.Open();
try
{
sqlDeleteCommand1.ExecuteNonQuery(); }
finally
{
sqlDeleteCommand1.Connection.Close();
}
}
毛病:删除的时候得按两下,或者是可以删除前一个,却不能删除后一个。很混乱。我这代码写得对吗?
{
string str="DELETE from employee where e_id = @Id";
sqlDeleteCommand1=new SqlCommand(str,sqlConnection1);
sqlDeleteCommand1.Parameters.Add(new SqlParameter("@Id",SqlDbType.NVarChar,11));
sqlDeleteCommand1.Parameters["@Id"].Value=this.DataGrid1.DataKeys[(int)e.Item.ItemIndex];
sqlDeleteCommand1.Connection.Open();
try
{
sqlDeleteCommand1.ExecuteNonQuery(); }
finally
{
sqlDeleteCommand1.Connection.Close();
}
}
毛病:删除的时候得按两下,或者是可以删除前一个,却不能删除后一个。很混乱。我这代码写得对吗?
解决方案 »
- 如何从数据库库里面动态的读取Treeview
- 一个小问题,却百思不得其解。。。。。
- 小弟的第一个ASP.NET作品,大虾们帮我看看有什么需要改进的
- SqlDataAdapter.Fill(dsReapter,5000,6000,myTable);这样数据分页是不是数据量大了就不行?
- 从oracle中读取二进制(BLOB类型字段)做成文件下载怎么做呢
- 路过请进来歇歇!!!!!!!!!!!!DUWAMISH的问题
- 怎样取得datagrid中的超链列的某个text值?
- 怎样获得访客的信息?
- asp.net中的css如何进行控制问题
- 郁闷中,不爽,散分!
- 请问这个Times是起什么作用的?
- 为什么在ASP.net里获取CPUID会出现这样的(少见)问题,?
----------------
你应该通过主键来删除,而不是通过索引行
则程序改成:
sqlDeleteCommand1.Parameters["@Id"].Value=e.item.cells(0).text.tostring;这样就行了,,,选中哪一行,不删除哪一行..
这个是对得.你应该进入调试模式看看,哪些值跟你设计预想不一样.
当你不删除的时候可能是执行了下面这一句了:
finally
{
sqlDeleteCommand1.Connection.Close();
}
建议检查数据的锁问题。
个人意见。
单元格的第1个是主键