0

我在后面的代码中有一个 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>
                &nbsp;
            </td>
        </tr>
    </table>
</ItemTemplate>
</asp:DataList>
4

2 回答 2

1

发生这种情况可能有多种原因,如果您没有提供更多信息,这只是在黑暗中拍摄。

  1. 确保您对数据库具有写入权限。
  2. 尝试将连接字符串修改为使用计算机名称或 IP 地址而不是 |DataDirectory| 连接。
于 2013-10-03T01:57:22.107 回答
0

什么是下划线列数据类型?因为根据 Microsoft Access 的数据类型,blob/二进制文件有不同的大小。

根据数据类型支持(OLE DB)

  • BigBinary DBTYPE_BYTES 4,000 字节
  • LongBinary 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";
于 2013-10-03T03:39:08.657 回答