Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL插入在我的代码中不起作用_C#_Asp.net_Sql - Fatal编程技术网

C# SQL插入在我的代码中不起作用

C# SQL插入在我的代码中不起作用,c#,asp.net,sql,C#,Asp.net,Sql,我的代码中有一个SQL插入,当我单击按钮时,它似乎在更新页面上的Textbox控件,而不是数据库。以下是背后的代码: protected void UpdatePic(object sender, EventArgs e) { string constr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\TravelJoansDB.mdb;"; string cmdstr = "INSERT INTO

我的代码中有一个SQL插入,当我单击按钮时,它似乎在更新页面上的Textbox控件,而不是数据库。以下是背后的代码:

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>






发生这种情况可能有多种原因,如果没有您提供的更多信息,这只是一个偶然的机会

  • 确保您具有对数据库的写入权限
  • 尝试将连接字符串修改为使用计算机名或IP地址,而不是使用| DataDirectory |进行连接

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

    根据:

    • BigBinaryDBTYPE_字节4000字节
    • LongBinaryDBTYPE_字节1073741823字节
    • VarBinaryDBTYPE_字节510字节
    还有,你为什么不用这个?是的

    附加到SQL Express文件的命令字符串很简单:

    string constr = @"Data Source=.\SQLEXPRESS;AttachDbFileName=e:\data\Customers.mdf;Integrated Security=True;User Instance=True";
    

    ExecuteOnQuery
    返回的值是什么?如果在visual studio中对此进行调试,ExecuteOnQuery()是否运行?另外,您如何检查您的数据库?有时这就是问题所在。如何检查ExecuteOnQuery命令返回的值?我通过打开数据库然后打开表来检查数据库。这是一个Access数据库。
    ExecuteNonQuery
    返回一个整数,告诉您有多少行受到影响,而您的代码中没有捕获这些行;将值存储在变量中,例如
    var x=com.ExecuteNonQuery()
    并将其打印到某个地方或在调试器中检查。我正在尝试使用System.Console.Writeline(),但在触发函数调用时它似乎没有显示任何内容。这应该作为注释而不是答案发布。发布它的人没有足够高的声誉来发布注释。这是正确的,Dan。很抱歉,如果它没有通过你的检查,Mike,但这是目前我尝试帮助其他用户的唯一方法。通过社区检查的最佳方法是将其重新表述为一个答案,其中列出了要尝试的事项。谢谢你的建议,George!相信我,下次我将使用SSE。基础数据类型是字符串。