簡體   English   中英

在ASP.NET C中將數據插入Visual Studio LocalDB#

[英]Insert data into Visual Studio LocalDB in ASP.NET C#

我有一個Windows Web應用程序,並在App_Data文件夾中創建了一個.mdf文件,我正在嘗試將數據插入到已創建的表中。

它能夠使用基本的SELECT *語句檢索代碼,但我無法插入數據,這是我的代碼:

private void Update(string username)
{
    SqlConnection con = new SqlConnection(@"MYSQLCONNECTION");
    con.Open();

    SqlCommand cmd = new SqlCommand();
    cmd.CommandType = CommandType.Text;
    string bcd = "INSERT INTO NameList(name) VALUES (@paraUsername)";
    cmd = new SqlCommand(bcd, con);
    cmd.Parameters.AddWithValue("@paraUsername", username);

    cmd.ExecuteNonQuery();
    list.Update();

    con.Close();
}

這段代碼過去對我有用,但這一次它不起作用。 沒有顯示錯誤,但數據未插入表中。

這就是我在button_click方法中調用方法的方法:

Update(tbName.text);

可能是什么問題?

假設你有一個

AttachDbFileName=......

您的連接字符串中的部分 - 然后這是一個已知問題:

整個AttachDbFileName =方法是有缺陷的 - 充其量! 在Visual Studio中運行應用程序時,它將復制.mdf文件(從App_Data目錄到輸出目錄 - 通常是.\\bin\\debug - 應用程序運行的地方)並且很可能 ,你的INSERT運行正常 - 但是你最后只是看錯了.mdf文件

如果你想堅持這種方法,那么嘗試在myConnection.Close()調用上設置一個斷點 - 然后用SQL Server Mgmt Studio Express檢查.mdf文件 - 我幾乎可以肯定你的數據在那里。

我認為真正的解決方案

  1. 安裝SQL Server Express(你已經完成了)

  2. 安裝SQL Server Management Studio Express

  3. SSMS Express中創建數據庫,給它一個邏輯名稱(例如YourDatabase

  4. 使用其邏輯數據庫名稱 (在服務器上創建時給定)連接到它 - 並且不要亂用物理數據庫文件和用戶實例。 在這種情況下,您的連接字符串將類似於:

     Data Source=.\\\\SQLEXPRESS;Database=YourDatabase;Integrated Security=True 

    其他一切都和以前完全一樣......

另請參閱Aaron Bertrand的優秀博客文章Bad bad to kick:使用AttachDbFileName獲取更多背景信息。

暫無
暫無

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

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