我有一个简单的sql insert C#语句,有效!但是,当我为datetime getdate()添加一列时,没有空值,插入失败.我试过并查看了各种文章,但我无法得到它.
这是我的代码!
string constr = ConfigurationManager.ConnectionStrings[
"My_DatabaseConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(
"INSERT INTO TestTable1 VALUES(@FirstName, @Email)"))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@FirstName", user.FirstName);
cmd.Parameters.AddWithValue("@Email", user.Email);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,所以我使用SQL Server管理器添加一个新列Date,datetime和getdate()允许空值未选中.
所以这会为任何现有记录添加日期和时间,但是当我尝试从表单提交时,它不起作用.
错误是:列名或提供的值数与表定义不匹配.
如果INSERT INTO语句中未提供列的列表,则SQL Server期望所有列的值
如果"值"列表中的值与表中的列的顺序不同,或者表中的每列没有值,则必须使用column_list显式指定存储每个传入值的列.
但是您的查询只提供两列
在VALUES部分中为表中的所有列添加值(如果使用,则为IDENTITY列除外)
INSERT INTO TestTable1 VALUES (@FirstName, @Email, GETDATE())
Run Code Online (Sandbox Code Playgroud)
或添加插入列的列表,默认值将用于其他列
INSERT INTO TestTable1 (FirstName, Email) VALUES (@FirstName, @Email)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
929 次 |
| 最近记录: |