还是OleDb连接数据库命名参数获取的问题:(
我的代码:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<head>
<title>delete temp</title>
<script language="C#" runat="server">
OleDbConnection myConnection;
protected void Page_Load(Object sender, EventArgs e)
{
myConnection = new OleDbConnection("Location=\"192.168.0.130\";Provider=\"IBMDADB2.1\";Mode=ReadWrite;User ID=administrator;Data Source=sample;Password=tt");
if (!IsPostBack)
BindGrid("id");
}
protected void MyDataGrid_Sort(Object sender, DataGridSortCommandEventArgs e)
{
BindGrid(e.SortExpression);
}
public void MyDataGrid_Delete(Object sender, DataGridCommandEventArgs e)
{
String deleteCmd = "delete from staff where id = ?";
OleDbCommand myCommand = new OleDbCommand(deleteCmd, myConnection);
myCommand.Parameters.Add(new OleDbParameter("?", OleDbType.SmallInt, 2));
myCommand.Parameters["?"].Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex];
myCommand.Connection.Open();
try
{
myCommand.ExecuteNonQuery();
Message.InnerHtml = "提示:已删除记录<br>" + deleteCmd;
Message.Style["color"] = "red";
}
catch (OleDbException)
{
Message.InnerHtml = "错误:未能删除记录";
Message.Style["color"] = "red";
}
myCommand.Connection.Close();
BindGrid("id");
}
public void BindGrid(String sortfield)
{
OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from staff", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "staff");
MyDataGrid.DataSource=ds.Tables["staff"].DefaultView;
DataView Source = ds.Tables["staff"].DefaultView;
Source.Sort = sortfield;
MyDataGrid.DataSource=Source;
MyDataGrid.DataBind();
}
</script>
</head>
<body style="font: 10.5pt 宋体">
<form runat="server">
<h3><font face="宋体"><center>删除操作模板:可以删除,排序功能 :)</center></font></h3>
<span id="Message" EnableViewState="false" style="font: arial 11pt;" runat="server"/><p>
<ASP:DataGrid id="MyDataGrid" runat="server"
Width="900"
BackColor="white"
BorderColor="#E7E7FF"
ShowFooter="false"
CellPadding="3"
CellSpacing="0"
HorizontalAlign="Center"
Font-Name="Courier New"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
HeaderStyle-HorizontalAlign="Center"
DataKeyField="id"
OnDeleteCommand="MyDataGrid_Delete"
OnSortCommand="MyDataGrid_Sort"
AllowSorting="true"
>
<Columns>
<asp:ButtonColumn Text="删除" CommandName="Delete" ItemStyle-Wrap="false"/>
</Columns>
</ASP:DataGrid>
</form>
</body>
</html>
连接是db2 sample数据库,staff表
提示:删除不了
怎么获取到参数呢:(
太郁闷我了:(