2013-10-03 21 views
0

我有一個SQL插入在我的代碼後面,當我點擊按鈕,它似乎更新我的網頁上的文本框控件,而不是我的數據庫。下面的代碼背後: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> 
+1

從'ExecuteNonQuery'返回什麼樣的價值? –

+1

如果你在Visual Studio中調試它,ExecuteNonQuery()是否運行?另外,你如何檢查你的數據庫?有時候這就是問題所在。 –

+0

如何檢查ExecuteNonQuery命令返回的值?我打開它查看我的數據庫,然後打開表格。它是一個Access數據庫。 – Joseph

回答

1

有可能發生這種情況,沒有更多的信息來自你多發的原因,這只是在黑暗中拍攝而已。

  1. 確保您擁有對數據庫的寫入權限。
  2. 嘗試修改連接字符串以使用計算機名稱或IP地址而不是| DataDirectory |連接。
+0

這應該作爲評論發佈,而不是答案。 – MikeSmithDev

+0

發佈它的人沒有足夠高的信譽來發表評論。 –

+0

這是正確的,丹。對不起,如果它沒有通過你的召集,邁克,但它是目前我嘗試和幫助其他用戶的唯一方式。 –

0

什麼是下劃線列數據類型?因爲根據Microsoft Access的數據類型,blob/binary具有不同的大小。

根據Data Type Support (OLE DB)

  • BigBinaryDBTYPE_BYTES 4,000字節
  • LONGBINARYDBTYPE_BYTES 1073741823個字節
  • VARBINARYDBTYPE_BYTES 510個字節

另外,爲什麼不使用SQL Server Express with ASP.Net?這是free

的命令字符串連接一個SQL Express的文件很容易:

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

相信你,下次我將會使用SSE。基礎數據類型是一個字符串。 – Joseph