插入时出错:列名或提供的值数与表定义不匹配
本文关键字:不匹配 定义 出错 插入 | 更新日期: 2023-09-27 18:29:58
当我运行此代码时,它会返回一个错误。我正在尝试将数据从我的输入表单中获取到我的数据库
这是表模式:
CREATE TABLE [dbo].[Students] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (MAX) NOT NULL,
[Email] NVARCHAR (MAX) NOT NULL,
[Password] NVARCHAR (MAX) NOT NULL,
CONSTRAINT [PK_Students] PRIMARY KEY CLUSTERED ([Id] ASC)
);
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO Students VALUES ('"+TextBox1.Text+ "','" +TextBox2.Text+ "','" +TextBox3.Text+ "','" +TextBox4.Text+"')";
cmd.ExecuteNonQuery();
con.Close();
如果说INSERT INTO
而不列出要插入SQL中的字段的名称,则假设为行中的每个字段插入一个值。因此,如果您的表有四列以上的列,就会出现错误。
如果这是问题所在,那么您只需要指定要插入的字段,即您需要以下格式的插入语句:
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway')
上面的例子来自这里。
然而,最好使用参数化查询。