我用的SqlCommand創建表的問題。代碼如下的SqlCommand不能創建表
string cs = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="+ Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\Database\Test.mdf;Integrated Security=True; Database=Test";
SqlConnection sc = new SqlConnection(cs);
sc.Open();
//SqlCommand cmd = new SqlCommand();
try
{
using (SqlCommand command = new SqlCommand(
"CREATE TABLE Dogs1 (Weight INT, Name TEXT, Breed TEXT)", sc))
{
Console.WriteLine(command.ExecuteNonQuery());
}
}
catch
{
Console.WriteLine("Table not created.");
}
我把代碼放在Main函數中並運行它。沒有錯誤,數據庫可以打開。但是,當我檢查數據庫時,沒有創建表。任何人都可以幫助看看這裏有什麼問題嗎?謝謝。
謝謝大家。這個問題已經解決了。當我創建Test.mdf時,我實際上是在項目的Database文件夾中創建的。當我雙擊Test.mdf時,它被鏈接到Visual Studio中的服務器資源管理器。然後,當我將屬性更改爲始終複製時,Test.mdf將被複制到bin/Debug/Database /中。當我用Path.GetDirectoryName(Assembly.GetExecutingAssembly()的位置),我其實是操作一個以斌/調試/,而不是一個項目文件夾。因此,它看起來像表沒有創建。所以現在我將bin/Debug/Database中的Test.mdf鏈接到服務器資源管理器,我可以看到創建了新表。
你有沒有嘗試過調試代碼?如果是的話,你有什麼異常?如果是有什麼異常 –
一個常見的錯誤使用獨立的數據庫文件時是被混淆的文件,你正在尋找中。是否在一個源項目看?或者你在看'bin/debug' /'bin/release'中的副本嗎?或...你在哪裏看?你用什麼證據來說它不會創建表格,基本上?請注意,如果您再次構建並運行該項目,則可能再次覆蓋該文件... –
您確定在此位置有文件:bin \\ Debug \\ Database \\ Test.mdf –