不正确的语法近的。“ 字符串后未闭合的引号“)”(incorrect syntax near &

2019-09-22 02:34发布

我有点儿编程小白,我想知道我做了什么错在这里 - 能有人帮帮我吗?

我想提出在它同步两个数据库一个控制台应用程序,但是当我尝试将数据插入到表中它抛出该异常; 该代码是:

public static void AddInterationPath(SqlConnection conDS_ReleaseCri, DataRow dr)
{
    SqlCommand insertNewAreaPath = new SqlCommand("INSERT INTO InterationPath (ID,NodePath) VALUES(" + dr[0].ToString() + ",'" + dr[2].ToString() + "')", conDS_ReleaseCriterions);
    insertNewAreaPath.ExecuteNonQuery();
}

public static void AddAreaPath(SqlConnection conDS_ReleaseCri, DataRow dr)
{
    SqlCommand insertNewAreaPath = new SqlCommand("INSERT INTO AreaPath (ID,NodePath) VALUES(" + dr[0].ToString() + ",'" + dr[2].ToString() + "')", conDS_ReleaseCriterions);
    insertNewAreaPath.ExecuteNonQuery();
}

我得到以下异常:

不正确的语法近的。“ 字符串后未闭合的引号“)”

Answer 1:

你可能在插入数据中包含特殊字符,如单引号。 更改为参数查询,以便值是正确转义。 一个很好的例子,并解释是http://www.codinghorror.com/blog/2005/04/give-me-parameterized-sql-or-give-me-death.html 。

[编辑:添加了一个例子。 ]

例如,取代你与第一函数的内容:

SqlCommand insertNewAreaPath = new SqlCommand(
    "INSERT INTO InterationPath (ID, NodePath) VALUES(@ID, @NodePath)",     
    conDS_ReleaseCriterions);
insertNewAreaPath.Parameters.Add("@ID", dr[0]);
insertNewAreaPath.Parameters.Add("@NodePath", dr[2]);
insertNewAreaPath.ExecuteNonQuery();


Answer 2:

如果你有““”的字符串值,然后内部的错误类型的正在添加的,所以删除字符串“””,然后执行查询。



文章来源: incorrect syntax near 's'. unclosed quotation mark after the character string ')'