【问题标题】:Error at inserting in sql插入sql时出错
【发布时间】:2012-05-27 04:25:36
【问题描述】:

我创建了一些变量,我想将它们插入数据库,我使用 for 循环在数组中插入一些值,但我得到了这个错误

“nvarchar”附近的语法不正确。
必须声明标量变量“@finalwords”。

这是我的代码

string []finalwords=new string[13000];

for (int h=0;h<wordsbeforesoundex.Length;h++)
{
   if (wordsbeforesoundex[h] == "")
      continue;

   finalwords[indexer] = wordsbeforesoundex[h];
   indexer++;
}

for (int l = 0; l < words.Length; l++)
{
   con.Open();

   SqlCommand cmd = new SqlCommand("INSERT INTO TableFFF (Data) VALUES (@finalwords[l])", con);

   cmd.Parameters.Add(new SqlParameter("@finalwords[l]", finalwords[l]));

   cmd.ExecuteNonQuery();
}

【问题讨论】:

  • 您确定 SQL 支持对参数进行索引运算符 (@finalwords[l])?我只会使用@finalwords 作为参数名称。
  • 如果您发布代码、XML 或数据示例,在文本编辑器中突出显示这些行,然后单击编辑器上的“代码示例”按钮 ({ })工具栏以很好地格式化和语法突出显示它!

标签: c# sql insert


【解决方案1】:

改成这样

SqlCommand cmd = 
new SqlCommand("INSERT INTO TableFFF (Data) VALUES (@finalwords_idx)", con);

cmd.Parameters.Add(new SqlParameter("@finalwords_idx", finalwords[l]));

【讨论】:

    【解决方案2】:

    您的插入查询不正确,请更改查询

    "INSERT INTO TableFFF (Data) VALUES (@finalwords["+l+"])"
    

    【讨论】:

    • 你的表结构是什么,你尝试在其中添加什么。因为@变量没有在数组中声明..请把你的表查询也放上去。
    猜你喜欢
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多