注册 登录
编程论坛 ASP.NET技术论坛

datelist删除问题

dengjifu 发布于 2007-11-16 16:24, 1215 次点击

protected void Button2_Click(object sender, EventArgs e)
{
string Delstring=DataList1.DataKeys[e.Item.ItemIndex];
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;data source=E:\\asp.net开发\\ASP.NET完全自学手册(光盘)\\源文件\\ch10\\App_Data\\MsgBoard.mdb";
string sql = "delete post where postid='" + Delstring + "'";
OleDbCommand comm = new OleDbCommand(sql, conn);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
Response.Redirect("index.aspx");

}

编译器错误信息: CS0117: “System.EventArgs”并不包含“Item”的定义

8 回复
#2
cyyu_ryh2007-11-16 16:41
tring Delstring=DataList1.DataKeys[e.Item.ItemIndex];
这种写法应该在其事件中写才可以吧
#3
sean882007-11-16 16:43
以下是引用dengjifu在2007-11-16 16:24:42的发言:

protected void Button2_Click(object sender, EventArgs e)
{
string Delstring=DataList1.DataKeys[e.Item.ItemIndex];
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;data source=E:\\asp.net开发\\ASP.NET完全自学手册(光盘)\\源文件\\ch10\\App_Data\\MsgBoard.mdb";
string sql = "delete post where postid='" + Delstring + "'";
OleDbCommand comm = new OleDbCommand(sql, conn);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
Response.Redirect("index.aspx");

}

编译器错误信息: CS0117: “System.EventArgs”并不包含“Item”的定义

你这个E是Button的事件,又不是DataList1的事件,当然不包括Item定义哦`~~在这里这样写是错误的`~~

[此贴子已经被作者于2007-11-16 16:44:31编辑过]

#4
sean882007-11-16 16:55
应该写在这里

private void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
string Delstring=DataList1.DataKeys[e.Item.ItemIndex];
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;data source=E:\\asp.net开发\\ASP.NET完全自学手册(光盘)\\源文件\\ch10\\App_Data\\MsgBoard.mdb";
string sql = "delete post where postid='" + Delstring + "'";
OleDbCommand comm = new OleDbCommand(sql, conn);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
Response.Redirect("index.aspx");
}
#5
akuboy19822007-11-16 20:23

学习~

#6
卡卡艾2007-11-16 22:47
以下是引用sean88在2007-11-16 16:55:33的发言:
应该写在这里

private void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
string Delstring=DataList1.DataKeys[e.Item.ItemIndex];
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;data source=E:\\asp.net开发\\ASP.NET完全自学手册(光盘)\\源文件\\ch10\\App_Data\\MsgBoard.mdb";
string sql = "delete post where postid='" + Delstring + "'";
OleDbCommand comm = new OleDbCommand(sql, conn);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
Response.Redirect("index.aspx");
}

对的.
LZ你那个地方写代码的时候肯定没点出来.当然会错了.

#7
dengjifu2007-11-17 10:39
private void InitializeComponent()
{
this.DataList1.ItemCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.DataList1_ItemCommand);
this.DataList1.ItemDataBound += new System.Web.UI.WebControls.DataListItemEventHandler(this.DataList1_ItemDataBound);
}
#endregion
protected void DataList1_ItemDataBound(object source, DataListItemEventArgs e)
{
Button Button2 = (Button)e.Item.FindControl("button2");
if (Button2 != null)
{
Button2.Attributes.Add("onclick", "return confirm('你确定要删除所选的内容吗?');");
}
}
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName.ToLower() == "delete")
{
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;data source=E:\\asp.net开发\\ASP.NET完全自学手册(光盘)\\源文件\\ch10\\App_Data\\MsgBoard.mdb";
string sID = DataList1.DataKeys[e.Item.ItemIndex].ToString();//获取id
string sql = "delete from post where postid=" + sID;
OleDbCommand comm = new OleDbCommand(sql, conn);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
Response.Redirect("index.aspx");
}
}

这样实现我想要的功能了。谢谢大家
#8
eakcon2007-11-17 15:32
糖包子,肉包子,油饼,油条,烧麦跟馒头哪个最劲爆,哪个最单调?
#9
冰彩虹2007-11-17 16:13

乱七八糟...

1