2014-10-01 54 views
0

當我寫這行:這條線有什麼問題?

SqlCommand MySqlCommand = new SqlCommand("INSERT INTO [User](NAME ,PASSWORD ,PUBLISH_FOLDER,ACTIVE,IP,PORT) Values ('shula','Aa1234','study','true','1015','8080')", MyConnection); 

它的工作原理,但是當我寫這幾行:

string Name = user.Name; 

string Password = user.Password; 

string Port = (user.Port).ToString(); 

string publishFolder=user.publishFolder; 

string Ip=user.Ip; 

SqlCommand MySqlCommand = new SqlCommand("INSERT INTO [User](NAME ,PASSWORD ,PUBLISH_FOLDER,ACTIVE,IP,PORT) Values (" + Name + "," + Password + "," + publishFolder + ",TRUE," + Ip + "," + Port + ")", MyConnection); 

的錯誤是:

無效的列名...

+1

首先創建命令字符串作爲字符串,以查看您的錯誤。然後切換到參數化查詢。 – CodeCaster 2014-10-01 21:59:33

+1

仔細看看你的第一個問題。你看到寫在桌子上的價值是什麼?它們不存在於字符串連接的查詢中。但請了解Sql Injection,然後重寫所有內容 – Steve 2014-10-01 21:59:48

+0

您在第二個代碼塊中使用的值需要'''前後'。 – 2014-10-01 22:00:24

回答

1

這是因爲

" Values (" + Name + "," 

產生

Values (shula, 

,而不是

Values ('shula', 

但你不應該添加',但使用的參數來代替。