0

在 ASP.NET 中,我尝试使用插入语句配置 DetailsView 控件。我运行插入命令并收到错误消息:

“列‘地址’不能为空”

我的 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 语法错误。谢谢

4

3 回答 3

2

您似乎没有输入学生表的所有列。尝试做

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

即使您添加了新列,这也将确保您的查询正常工作,并帮助您进行快速的健全性检查,以确保您拥有所需的所有列。

编辑:

根据您的新结果,我看到了问题。你的 SQL 是错误的。它应该是这样的:

插入学生(姓名)值(@Name)

您不应该在 value 部分中使用 column name = parameter name。

编辑2:

对于“地址不能为空错误”,您需要检查您插入地址的值。它是数据库中不可为空的字段,您输入的值为空。这应该让您向用户返回一个错误,说他们需要一个地址。

于 2013-05-11T03:49:38.173 回答
1

您为 insert 编写的语法对我来说看起来很奇怪。

它应该是,

Insert into table_name (col1, col2) values (@val_col1, @val_col2)
于 2013-05-11T03:52:29.903 回答
1

似乎有点简单。你还卡住了吗? http://sqlfiddle.com/#!2/47ed30/1

于 2013-05-11T04:36:31.387 回答