SQL插入在我的代码中不起作用
本文关键字:不起作用 代码 我的 插入 SQL | 更新日期: 2023-09-27 18:33:44
我的代码中有一个SQL插入,当我单击该按钮时,它似乎更新了我的页面上的文本框控件,而不是我的数据库。下面是背后的代码:
protected void UpdatePic(object sender, EventArgs e)
{
string constr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|'TravelJoansDB.mdb;";
string cmdstr = "INSERT INTO BlogEntryItems(Picture) VALUES (@UpdatedPic)";
OleDbConnection con = new OleDbConnection(constr);
OleDbCommand com = new OleDbCommand(cmdstr, con);
TextBox uPic = (TextBox)DataList1.Items[1].FindControl("BEIPictureField");
con.Open();
com.Parameters.Add("@UpdatedPic", uPic.Text);
com.ExecuteNonQuery();
con.Close();
}
ASP 代码用于 OnClick 事件调用此方法的按钮:
<asp:DataList ID="DataList1" runat="server" DataSourceID="AccessDataSource1">
<ItemStyle />
<ItemTemplate>
<table>
<tr>
<td>
<br />
<asp:Image ID="Image1" CssClass="placePicCenter" runat="server"
BorderWidth="1px"
BorderColor="#EEEEEE"
ImageUrl='<%# "PlaceImages/" + Eval("Picture") %>' /><br />
<asp:TextBox ID="BEIPictureField" runat="server" Text='<%# Bind("Picture") %>' /><br />
<asp:Button ID="UpdatePicButton" runat="server" Text="Update" OnClick="UpdatePic" />
<br />
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label4" CssClass="placeBodyStyle" runat="server" Text='<%# Eval("PicText1") %>' />
</td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
发生这种情况可能有多种
原因,如果没有您提供更多信息,这只是黑暗中的一枪。
- 确保您具有对数据库的写入权限。
- 尝试将连接字符串修改为使用计算机名称或 IP 地址,而不是 |数据目录|进行连接。
下划线列数据类型是什么?因为根据 Microsoft Access 的数据类型,blob/二进制文件的大小会有所不同。
根据数据类型支持 (OLE DB):
- 大二进制 DBTYPE_BYTES 4,000 字节
- 长二进制 DBTYPE_BYTES 1,073,741,823 字节
- VarBinary DBTYPE_BYTES 510 字节
另外,为什么不将SQL Server Express与 ASP.Net 一起使用?它是免费的。
附加 SQL Express 文件的命令字符串很简单:
string constr = @"Data Source=.'SQLEXPRESS;AttachDbFileName=e:'data'Customers.mdf;Integrated Security=True;User Instance=True";