标题:求大大指点迷津
只看楼主
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
 问题点数:0 回复次数:5 
求大大指点迷津

如图,我用datalist来显示留言聚居,datalist里面有个linkbutton控件,并且加了ondeletecommand,执行以下过程

这个过程我不知道要怎么改,还有,怎么才能删除对应ID的留言,ID是主键

<script runat="server">
Sub Data_del ( s as object, e as DatalistCommandEventargs )
Dim OleConn as OleDbConnection
Dim OleCmd as OleDbCommand
Dim OleDel as string
OleConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=h:\web\data\webdata.mdb;User ID=;Password=")
OleDel = "Delete MessageBook where ID = '?'"
OleCmd = new OleDbCommand ( OleDel, OleConn )
OleConn.open
OleCmd.ExecuteNonQuery()
OleConn.close
end sub
</script>


这个是datalist

<asp:DataList id="DataList1"
runat="server"
RepeatColumns="1"
RepeatDirection="Vertical"
OnDeleteCommand="Data_del"
RepeatLayout="Flow"
DataSource="<%# Message.DefaultView %>" >
<ItemTemplate>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CDCDB8">
<tr>
<td colspan="4" bgcolor="#d3d3be"> </td>
</tr>
<tr>
<td height="25" colspan="4" bgcolor="#F3F3ED"><table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="34%" align="left" class="font_color"> □留言序号 <%# Message.FieldValue("ID", Container) %></td>
<td width="29%"><a href="123" class="font_color">QQ联系</a></td>
<td class="font_color"><%# Message.FieldValue("Time", Container) %></td>
</tr>
</table></td>
</tr>
<tr>
<td width="118" bgcolor="edede4"><table width="100%" height="125" border="0" cellpadding="0" cellspacing="1" bgcolor="#CDCDB8">
<tr>
<td height="110" align="center" valign="middle" bgcolor="edede4"><img src="face/<%# Message.FieldValue("Face", Container) %>.jpg" width="100" height="100" /></td>
</tr>
<tr>
<td align="center" bgcolor="edede4" class="font_color"><%# Message.FieldValue("Name", Container) %></td>
</tr>
</table></td>
<td colspan="3" valign="top" bgcolor="#F3F3ED"><table width="100%" height="125" border="0" cellpadding="5" cellspacing="0">
<tr>
<td align="left" valign="top" class="font_color"><img src="<%# Message.FieldValue("Miange", Container) %>" width="45" height="45" /><%# Message.FieldValue("Book", Container) %></td>
</tr>
</table></td>
</tr>
<tr>
<td height="13" colspan="2" valign="bottom" bgcolor="#F3F3ED"> </td>
<td width="73" height="13" valign="bottom" bgcolor="#F3F3ED"> </td>
<td width="72" height="15" valign="bottom" bgcolor="#F3F3ED" class="font_color"><asp:LinkButton CommandName="delete" CssClass="font_color" ID="Del" runat="server" text="删除"></asp:LinkButton></td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>


搜索更多相关主题的帖子: server 
2006-08-28 21:39
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
得分:0 

顶,我很想知道

2006-08-29 10:33
yichen
Rank: 1
等 级:新手上路
帖 子:303
专家分:0
注 册:2005-3-9
得分:0 

LinkButton不是 有一个属性是:CommandName
设置它的值为:delete
另外还得设置 DataList1的DataKeyField="ID";

private void DataList1_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
if(e.CommandName=="delete")
{
string k=this.DataList1.DataKeys[e.Item.ItemIndex].ToString();

OleDbConnection ocn=new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source="+Server.MapPath("data\\liuyan.mdb"));
ocn.Open();

OleDbCommand ocm=new OleDbCommand("delete from guestbook where id="+k,ocn);
ocm.ExecuteNonQuery();

ocn.Close();
this.bind();
}
}


衣带渐宽终不悔, 为伊消得人憔悴。 纸上得来终觉浅, 绝知此事要躬行。
2006-08-29 10:49
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
得分:0 

我给datalist加了datakeys了
<script runat="server">
Sub Data_del ( s as object, e as DatalistCommandEventargs )
Dim OleConn as OleDbConnection
Dim OleCmd as OleDbCommand
Dim OleDel as string
Dim Keys_ID = DataList1.DataKeys
OleConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=h:\web\data\webdata.mdb;User ID=;Password=")
OleDel = "Delete from MessageBook where ID = Keys_ID"
OleCmd = new OleDbCommand ( OleDel, OleConn )
OleConn.open
OleCmd.ExecuteNonQuery()
OleConn.close
end sub
</script>

可是还是点击删除按钮的时候出现

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

找不到可安装的 ISAM。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 找不到可安装的 ISAM。

源错误:

只有在调试模式下进行编译时,生成此未处理异常的源代码才会显示出来。若要启用此功能,请执行以下步骤之一,然后请求 URL:

1. 在产生错误的文件的顶部添加一条“Debug=true”指令。例如:

<%@ Page Language="C#" Debug="true" %>

或:

2. 将以下的节添加到应用程序的配置文件中:

<configuration>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>

请注意,第二个步骤将使给定应用程序中的所有文件在调试模式下进行编译;第一个步骤仅使该特定文件在调试模式下进行编译。

重要事项: 以调试模式运行应用程序一定会产生内存/性能系统开销。在部署到生产方案之前,应确保应用程序调试已禁用。


2006-08-29 11:54
yichen
Rank: 1
等 级:新手上路
帖 子:303
专家分:0
注 册:2005-3-9
得分:0 
是DataKeyField,不是DataKeys

衣带渐宽终不悔, 为伊消得人憔悴。 纸上得来终觉浅, 绝知此事要躬行。
2006-08-29 15:02
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
得分:0 

自己搞麻烦了,我不用Linkbutton了 直接换了个文字连接,通过url传递,建立一个删除页面

2006-08-29 18:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-86618-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054511 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved