C# Command.ExecuteNonQuery();错误 “VALUE”附近的语法不正确
本文关键字:不正确 语法 VALUE ExecuteNonQuery Command 错误 | 更新日期: 2023-09-27 18:31:16
我已经尝试了很多不同的东西,我总是在我的
cmd.ExecuteNonQuery();
它把我扔了这个。
System.Data 中发生了类型为"System.Data.SqlClient.SqlException"的未处理异常.dll 其他信息:"VALUE"附近的语法不正确。
法典:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace Server_Testing
{
class Program
{
static void Main(string[] args)
{
string conString = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
SqlConnection con = new SqlConnection(conString);
con.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO Test (Id, Name) VALUE (@Id, @Name)", con);
if(con.State == ConnectionState.Open)
{
//cmd.Parameters.Add(new SqlParameter("@Id", 1));
//cmd.Parameters.Add(new SqlParameter("@Name", "MyName"));
//cmd.Parameters.AddWithValue("@Id", 1);
//cmd.Parameters.AddWithValue("@Name", SqlDbType.NVarChar).Value = "MyName";
cmd.Parameters.AddWithValue("@Id", 1);
cmd.Parameters.AddWithValue("@Name", "Myname");
cmd.ExecuteNonQuery();
}
}
}
}
正如您从评论中看到的那样,我已经尝试了一些东西,但是如果对我有用,我似乎无法正确处理,它一定是SQL字符串,但这也应该没问题。谁能在这里帮我?
它应该是VALUES
而不是VALUE
.
INSERT
{
[ TOP ( expression ) [ PERCENT ] ]
[ INTO ]
{ <object> | rowset_function_limited
[ WITH ( <Table_Hint_Limited> [ ...n ] ) ]
}
{
[ ( column_list ) ]
[ <OUTPUT Clause> ]
{ VALUES ( { DEFAULT | NULL | expression } [ ,...n ] ) [ ,...n ]
| derived_table
| execute_statement
| <dml_table_source>
| DEFAULT VALUES
}
}
}
读取插入 (Transact-SQL)
并使用using
语句来处置您的SqlConnection
和SqlCommand
。
using(SqlConnection con = new SqlConnection(conString))
using(SqlCommand cmd = con.CreateCommand())
{
cmd.CommandText = "INSERT INTO Test (Id, Name) VALUES (@Id, @Name)";
cmd.Parameters.Add("@Id", SqlDbType.Int).Value = 1;
cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = "Myname";
// I assumed your column types are Int and NVarChar
con.Open();
cmd.ExecuteNonQuery();
}
最佳做法是不要使用AddWithValue
方法。它可能会产生意外的结果。使用.Add()
方法或它的重载。
阅读:我们可以停止使用 AddWithValue() 吗?