簡體   English   中英

LINQ to SQL insertonsubmit()不起作用(Windows窗體)

[英]LINQ to SQL insertonsubmit() does not work (Windows Forms)

我在C#中的桌面應用程序有問題。 我決定將Web窗體中非常簡單的Web應用程序遷移到Windows窗體。 我使用sql和LINQ。 在網絡表單中,一切正常。 現在在Windows窗體號。 代碼完全一樣。 我將其更改為數據庫中的僅一個控件和一個表。 我調試過,我認為一切都很好,但是由於某些原因,insertonsubmit()命令不起作用。 我將不勝感激。

我將Windows 8,適用於Web 2012的Visual,適用於桌面2013

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        DataClasses1DataContext db = new DataClasses1DataContext();
        osoba obj = new osoba();

        obj.nazwa ="Anna";

        db.osobas.InsertOnSubmit(obj);
        db.SubmitChanges();
        MessageBox.Show("ok");
    }
}

在附件項目中: https : //drive.google.com/file/d/0B7nHhrRU4CjHZExDMFRlNkZzN0U/edit?usp=sharing

將評論轉換為答案。

問題是,當您在項目中附加了數據庫時,對於Web應用程序,它可以正常工作,因為它不會將其復制到bin文件夾中。 但是對於Win應用程序,它將在每個版本上復制它,因此在您的情況下,步驟是:

  1. 當您從Visual Studio運行它時,
  2. 它會生成,並將已編譯的程序集和數據庫本身復制到bin \\ Debug文件夾中
  3. 然后它啟動您的應用程序。 所有更改都在bin \\ Debug文件夾的db中進行
  4. 然后當您從Visual Studio再次運行它時
  5. 它再次進行構建,並復制已編譯的匯編文件和項目中存在的相同舊數據庫。 並且此步驟是覆蓋bin \\ Debug文件夾中的先前數據庫
  6. 當應用程序啟動時,它與步驟3相比沒有任何變化

當您在項目中使用DB時,這是一個典型的問題。 通常沒關系,但是如果您不喜歡它,可以將數據庫從項目中移開。 或者,您可以只使用SQL Express或普通的SQL Server並將數據庫附加到SQL Server,然后它將與您的項目分離,並且不會每次都被替換。

幾秒鍾前我遇到了同樣的錯誤,但已修復。

Visual Studio 2013中提供了數據庫連接解決方​​案。

服務器資源管理器->數據連接-> yourdatabasename應該變成綠色。

您還可以檢查您的表是否具有主鍵。

希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM