读书人

各位帮忙,快!该如何解决

发布时间: 2012-03-18 13:55:39 作者: rapoo

各位帮忙,快!!
<Asp:DataGrid id= "mygride " OnDeleteCommand= "dgdelete " runat=server Width= "234px " >

<Columns>
<Asp:ButtonColumn Text= "删除 " CommandName= "delete ">
</Asp:ButtonColumn>
</Columns>

</Asp:DataGrid>
设计代码
public void dgdelete(object send,DataGridCommandEventArgs e)
{
SqlCommand com = new SqlCommand( "delete form car where Col001=@cc ");
com.Parameters.Add(new SqlParameter( "@cc ", SqlDbType.Char, 255));
//com.Parameters[ "@cc "] =mygride.DataKeys[int.Parse(e.Item.ItemIndex)];

com.Parameters[ "@cc "].Value = mygride.DataKeys[(int)e.Item.ItemIndex];

//this.con.Open();
//try
//{
// com.ExecuteNonQuery();
// Response.Write( "成功删除!! ");

//}
//catch (SqlException)
//{
// Response.Write( "无法删除!! ");

//}

//this.con.Close();
//bindgrid();

}
public void bindgrid()
{
DataSet ds = new DataSet();
SqlCommand com = new SqlCommand( "select * from car ",this.con);
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand = com;
da.Fill(ds, "car ");
this.mygride.DataSource = ds.Tables[ "car "].DefaultView;
this.mygride.DataBind();


}
com.Parameters[ "@cc "].Value = mygride.DataKeys[(int)e.Item.ItemIndex];
解悉这句话的具体含义!!
是给参数cc赋的什么值呀!!
多谢!!


[解决办法]
mygride 的 指定第ItemIndex行 datakeys的值
[解决办法]
如 SqlCommand com = new SqlCommand( "delete form car where Col001=@cc ");
com.Parameters[ "@cc "] = 123;

则SQL语句为
delete form car where Col001=123

[解决办法]
SqlCommand com = new SqlCommand( "delete form car where Col001=@cc ");
com.Parameters[ "@cc "].Value = mygride.DataKeys[(int)e.Item.ItemIndex];


---------------
简单的说就是把上面Col001=@cc中的@cc替换成这个值:mygride.DataKeys[(int)e.Item.ItemIndex]


[解决办法]
主键DataKeys的值
[解决办法]
<Asp:DataGrid id= "mygride " OnDeleteCommand= "dgdelete " runat=server Width= "234px " >
最好加上DataKeyField= "Id ", "Id "就是你绑定数据源的主键
mygride.DataKeys[(int)e.Item.ItemIndex]就是选择行的主键的值
[解决办法]
DataKeys的值啊
DataGrid 的DataKeys值

[解决办法]
DataKeys
[解决办法]
DataGrid.DataKeys[值]
[解决办法]
com.Parameters[ "@cc "].Value = mygride.DataKeys[(int)e.Item.ItemIndex];
=================================
com.Parameters[ "@cc "].Value = mygride.DataKeys[e.Item.ItemIndex];

e.Item 找到当前项
e.Item.ItemIndex 找到当前项的索引
mygride.DataKeys[(e.Item.ItemIndex];找到当前项的索引对应的DataGrid控件的主键值
com.Parameters[ "@cc "].Value = mygride.DataKeys[e.Item.ItemIndex];
找到当前项的索引的主键值赋给参数@cc的Value属性

[解决办法]
为sql语句的参数赋值。参看参数化sql语句的相关内容

读书人网 >asp.net

热点推荐