System.Data.SqlClient.SqlException:'。附近的语法不正确。'

凯汉

我尝试使用.Net Core Wep API和SQL。我在'。''附近有错误的语法。

ı使用postman制作api,并尝试使用json来实现。

在appsettings.json代码中;

{
  "ConnectionStrings": {
    "EmployeeAppCon": "Data Source=.;Initial Catalog=EmployeeDB; Integrated Security=true"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

我尝试了get,post方法,但是在这里Uptade方法出错了;

[HttpPut]
        public JsonResult Put(Department dep)
        {
            string query = @"
                       Uptade dbo.Department set 
                       DepartmentName='"+dep.DepartmentName+@"'
                       where DepartmentId="+dep.DepartmentId+@"
                       ";
            DataTable table = new DataTable();
            string sqlDataSource = _configuration.GetConnectionString("EmployeeAppCon");
            SqlDataReader myReader;
            using (SqlConnection myCon = new SqlConnection(sqlDataSource))
            {
                myCon.Open();
                using (SqlCommand myCommand = new SqlCommand(query, myCon))
                {
                    myReader = myCommand.ExecuteReader();
                    table.Load(myReader); ;
                    myReader.Close();
                    myCon.Close();
                }

            }
            return new JsonResult("Uptade Successfull");

        }

我的错在哪里,请多多帮助我。

马克·格雷韦尔

这很可能是SQL中串联的问题。长话短说:永远不要将输入连接到SQL中;正确的操作更像是:

update dbo.Department
set DepartmentName=@name
where DepartmentId=@id

其中@name@id是参数。

然后,您将使用myCommand.Parameters.Add(...)包括这两个参数及其名称/值,并使用ExecuteNonQuery(不是ExecuteReader)。

然而!Dapper(免费等)为我们完成所有艰苦的工作会容易得多,那么我们可以这样做:

using var myCon = new SqlConnection(sqlDataSource); // don't even need to open it
myCon.Execute(@"
update dbo.Department
set DepartmentName=@name
where DepartmentId=@id",
    new { name = dep.DepartmentName, id = dep.DepartmentId });

其中,new {...}此处使用值定义了我们的命名参数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

System.Data.SqlClient.SqlException:“ =”附近的语法不正确

System.Data.SqlClient.SqlException:“ =”附近的语法不正确

System.Data.SqlClient.SqlException: '',' 附近的语法不正确。

System.Data.dll中的“ System.Data.SqlClient.SqlException”(“')附近的语法不正确。”)?

System.Data.SqlClient.SqlException: '9' 附近的语法不正确

System.Data.SqlClient.SqlException: ''USERNAME' 附近的语法不正确。'

System.Data.SqlClient.SqlException:'((。)附近的语法不正确。“错误

异常是 System.Data.SqlClient.SqlException: '9988' 附近的语法不正确

System.Data.SqlClient.SqlException:'@ p0'附近的语法不正确。

部署到Azure时:System.Data.SqlClient.SqlException:'ON'附近的语法不正确

'='附近的语法不正确。在System.Data.SqlClient.SqlConnection.OnError(SqlException异常

System.Data.SqlClient.SqlException(0x80131904):'。附近的语法不正确

System.Data.SqlClient.SqlException:关键字“ WHERE”附近的语法不正确

System.Data.SqlClient.SqlException: ''Student' 附近的语法不正确

System.Data.SqlClient.SqlException: '')' 附近的语法不正确。在按钮保存

System.Data.dll中的类型'System.Data.SqlClient.SqlException'发生异常'b'附近的语法不正确

System.Data.SqlClient.SqlException:''='附近的语法不正确。在数据表和对象上

System.Data.dll中发生System.Data.SqlClient.SqlException(语法不正确)

当我调用此方法时,我收到一个错误“ System.Data.SqlClient.SqlException:'在cmd.ExecuteNonQuery();上'('。'附近的语法不正确;

异常在运行时停止在.NET Core应用程序中执行:System.Data.SqlClient.SqlException:'关键字'GROUP'附近的语法不正确。

在此int中= sc.executenonquery(); 正在给出错误“''system.data.sqlclient.sqlexception附近的语法不正确”怎么办?

将Guid传递给存储过程将引发Microsoft.Data.SqlClient.SqlException:'@Id'附近的语法不正确。

'System.Data.SqlClient.SqlException'

System.Data.SqlClient.SqlException: '无效的列名'"

System.Data.SqlClient.SqlException nvarchar浮动

何時使用 Microsoft.Data.SqlClient.SqlException 與 System.Data.SqlClient.SqlException?

SqlException: 'nvarchar' 附近的语法不正确

System.Data.SqlClient.SqlException:用户“ ......”的登录失败

System.Data.SqlClient.SqlException: '无效的列名'音乐'。