首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

高手,请你再看一眼。(DataGrid使用)解决方案

2012-02-21 
高手,请你再看一眼。(DataGrid使用)private void DataGrid1_DeleteCommand(object source, System.Web.UI.W

高手,请你再看一眼。(DataGrid使用)
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
SqlCommand cmd=new SqlCommand();
cmd.Connection=new SqlConnection("data source=127.0.0.1;database=bxb;uid=sa;pwd=sa;");
cmd.CommandText="delete cdate where c_id=@c_id";
SqlParameter prmid=new SqlParameter("@c_id",SqlDbType.Int);
prmid.Direction=ParameterDirection.Input;
cmd.Parameters.Add(prmid);
prmid.Value=e.Item.Cells[1].Text;
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
cmd.Connection.Dispose();
cmd.Dispose();
LoadData();
}

异常详细信息: System.FormatException: 输入字符串的格式不正确。

源错误: 


行 84: prmid.Value=e.Item.Cells[1].Text;
行 85: cmd.Connection.Open();
--->>行 86: cmd.ExecuteNonQuery();
行 87: cmd.Connection.Close();
行 88: cmd.Connection.Dispose();

错误指向行86
 

请问怎么修改?


[解决办法]
prmid.Value=e.Item.Rows[e.rowindex].Cells[1].Text; 
这样试试看!


[解决办法]
把你要按删除的条件放在dataKeys里面.比如说表ID.
然后:string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
prmid.Value=int.Parse(id);
试试看,应该没有问题.
[解决办法]
cmd.CommandText="delete cdate where c_id=@c_id"; 
上句的SQL语句写错:
应为:
cmd.CommandText="delete from cdate where c_id=@c_id"; 

[解决办法]
你不可以看下别人现成的代码吗? 对照一下就知道了。。何必去苦苦找错呢。再说了。你这么点代码。别人很难帮到你的。
[解决办法]
表中的数据类型都是varchar型
--------------------------
SqlParameter prmid=new SqlParameter("@c_id",SqlDbType.Int); 
这个怎么就是 INT????

[解决办法]
cmd.CommandText="delete from cdate where c_id=@c_id";
prmid.Value=int.Parse(e.Item.Cells[1].Text);
[解决办法]
SqlParameter prmid=new SqlParameter("@c_id",SqlDbType.Int); 
你表里的数据类型为varchar,而你这里的参数设置的类型为Int,你改成SqlDbType.Varchar看看
[解决办法]

C# code
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) {     SqlCommand cmd = new SqlCommand();     cmd.Connection = new SqlConnection("data source=127.0.0.1;database=bxb;uid=sa;pwd=sa;");     cmd.CommandText = "delete cdate where c_id=@c_id";     SqlParameter prmid=new SqlParameter("@c_id",SqlDbType.VarChar);     prmid.Direction=ParameterDirection.Input;     cmd.Parameters.Add(prmid);     prmid.Value=e.Item.Cells[1].Text;     cmd.Connection.Open();     cmd.ExecuteNonQuery();     cmd.Connection.Close();     cmd.Connection.Dispose();     cmd.Dispose();     LoadData(); } 

热点排行