[英]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
文件 - 我幾乎可以肯定你的數據在那里。
我認為真正的解決方案是
安裝SQL Server Express(你已經完成了)
安裝SQL Server Management Studio Express
在SSMS Express中創建數據庫,給它一個邏輯名稱(例如YourDatabase
)
使用其邏輯數據庫名稱 (在服務器上創建時給定)連接到它 - 並且不要亂用物理數據庫文件和用戶實例。 在這種情況下,您的連接字符串將類似於:
Data Source=.\\\\SQLEXPRESS;Database=YourDatabase;Integrated Security=True
其他一切都和以前完全一樣......
另請參閱Aaron Bertrand的優秀博客文章Bad bad to kick:使用AttachDbFileName獲取更多背景信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.