2013-05-11 68 views
0

在ASP.NET中,我試圖用insert語句配置DetailsView控件。我運行插入命令,我得到的錯誤:ASP.NET SQL插入錯誤

"Column 'Address' cannot be null"

我的SQL:

INSERT INTO Students (Name, Address,College_Status,Email,Fraternity_Status,Major,Pledge_Class,Ship_ID,Dues_Paid,Service_Hours,Money_Donated,Phone,Shirt_Size,Phone_Carrier,Birthday,Chair_Position,Ritual_Proficiency,Library_Hours) Values (@Name,@Address,@College_Status,@Email,@Fraternity_Status,@Major,@Pledge_Class,@Ship_ID,@Dues_Paid,@Service_Hours,@Money_Donated,@Phone,@Shirt_Size,@Phone_Carrier,@Birthday,@Chair_Position,@Ritual_Proficiency,@Library_Hours) 

任何想法,將不勝感激。我認爲這只是一個簡單的SQL語法錯誤。 謝謝

+0

發佈參數也 – 2013-05-11 04:22:00

+0

問題似乎是控件在這裏的任何文本框中都不能接受空白值。我想我會嘗試使用try/catch塊。 – Klinetel 2013-05-11 04:22:55

+0

請發佈您的SQL表格屬性及其數據類型 – 2013-05-11 05:12:18

回答

2

這似乎是你沒有輸入學生表的所有列。嘗試做

INSERT INTO Students (*column names*) VALUES (*values*) 

這將確保您的查詢工作,即使你添加一個新列,以及幫助您提供快捷全面的檢查,以確保您擁有所有必需的列。

編輯:

根據您的新結果,我看到了問題。你的SQL錯了。它應該是這樣的:

INSERT INTO學生(名稱)VALUES(@Name)

你不應該在價值部分要使用的列名=參數名稱。

編輯2:

對於「地址不能爲空錯誤」,您需要檢查要插入的地址值。它是數據庫中的一個不可爲空的字段,您輸入的值爲空。這應該讓你向用戶返回一個錯誤,說他們需要一個地址。

+0

我已經更新了列。新的錯誤吐出了:「你的SQL語法有錯誤;檢查與你的MySQL服務器版本相對應的手冊,在'','Ritual_Proficiency','Library_Hours'附近使用正確的語法)值('Name' = @ Name,'Address' = @ Address'at line 1「 – Klinetel 2013-05-11 03:53:39

+0

@Klinetel是否有你使用反引號而不是單引號的理由?我不記得在執行SQL時看到了這個問題 – Jetti 2013-05-11 03:56:27

+0

現在我不再使用它了, (2個詞) – Klinetel 2013-05-11 03:58:18

1

你爲insert寫的語法看起來很奇怪。

它應該是,

Insert into table_name (col1, col2) values (@val_col1, @val_col2) 
+1

這是針對MySQL的。請看上面我的編輯欄。我應該使用@values而不是每個列名= @什麼? – Klinetel 2013-05-11 03:53:01