C#使用ODBC连接语法错误插入SQL

时间:2018-08-02 08:57:08

标签: c# sql sql-server odbc

我想在C#中的每个间隔插入行。我收到此错误:

  

[42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]错误   ';'附近的语法。

代码如下:

cmdString = $"INSERT INTO {n}" + "VALUES (?, ?);";
using (OdbcCommand comm = new OdbcCommand())
{
    comm.Connection = connection;
    comm.CommandText = cmdString;
    comm.Parameters.Add("value", System.Data.Odbc.OdbcType.Int).Value = value;
    comm.Parameters.Add("time", System.Data.Odbc.OdbcType.DateTime).Value = System.DateTime.Now;
    comm.ExecuteNonQuery();
    rows += 1;
}

请帮助

编辑

现在一切似乎都还可以,但是我看不到sql server中表中出现的行:/您能帮我吗?这是我的连接字符串:

connetionString = "Driver={Sql Server}; Server=baxu\\sqlexpress; Database = baza1;" + $"UID ={ username };PWD={ password };";

2 个答案:

答案 0 :(得分:1)

您的命令字符串为false,值前缺少空格。因此,代替

ListenerRetriever

执行此操作:

cmdString = $"INSERT INTO {n}" + "VALUES (?, ?);";

或者,如果您坚持串联:

cmdString = $"INSERT INTO {n} VALUES (?, ?);";

还要检查cmdString = $"INSERT INTO {n}" + " VALUES (?, ?);"; //notice the space here ----------^ 是否包含现有表名

答案 1 :(得分:0)

取决于n值,您将具有不同的cmdString。 n可能包含没有空格的表名,因此,结果字符串将表名和值粘合在一起。 在调试器中检查cmdString的值(或将其输出到日志)。