请教:ASP.NET快速入门中,"删除 SQL 数据库中的数据",按例子做好,按下删除后,DataGrid看不见了,数据也未能删除。
代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
myConnection = new SqlConnection("server=(local);database=pubs;Trusted_Connection=yes");
if (!IsPostBack)
BindGrid();
}
public void MyDataGrid_Delete(Object sender, DataGridCommandEventArgs e)
{
String deleteCmd = "DELETE from Employee where emp_id = @Id";
SqlCommand myCommand = new SqlCommand(deleteCmd, myConnection);
myCommand.Parameters.Add(new SqlParameter("@Id", SqlDbType.NVarChar, 11));
myCommand.Parameters["@Id"].Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex];
myCommand.Connection.Open();
try
{
myCommand.ExecuteNonQuery();
Message.InnerHtml = "<b>已删除记录</b><br>" + deleteCmd;
}
catch (SqlException)
{
Message.InnerHtml = "错误:未能删除记录";
Message.Style["颜色"] = "红色";
}
myCommand.Connection.Close();
BindGrid();
}
public void BindGrid()
{
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Employee", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Employee");
MyDataGrid.DataSource=ds.Tables["Employee"].DefaultView;
MyDataGrid.DataBind();
}
问题点数:20、回复次数:5Top
1 楼mbm(沉默是金)回复于 2002-05-18 14:33:05 得分 20
你把DataGrid的DataKeyFiled属性设为emp_id了吗?Top
2 楼true_blue(true_blue)回复于 2002-05-18 14:41:26 得分 0
已设DataKeyFieled为emp_id:
<ASP:DataGrid id="MyDataGrid" runat="server" Width="800" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" DataKeyField="emp_id" OnDeleteCommand="MyDataGrid_Delete">
<Columns>
<asp:ButtonColumn Text="删除员工" CommandName="Delete" />
</Columns>
</ASP:DataGrid>Top
3 楼mbm(沉默是金)回复于 2002-05-18 14:45:21 得分 0
你把try{} catch{}去掉,
只保留myCommand.ExecuteNonQuery();
看哪一行出错Top
4 楼true_blue(true_blue)回复于 2002-05-18 15:39:19 得分 0
还是不行啊Top
5 楼true_blue(true_blue)回复于 2002-05-18 15:54:20 得分 0
奇怪 我重做一下,就好了,谢谢 mbm(-- (@ \/ @) --)Top




