当前位置: 首页 > 面试题库 >

在C#中形成参数化SQL语句的正确方法是什么

苍宝
2023-03-14
问题内容

目标: 使用C#和SQL2008正确设置参数化的SQL插入语句

问题: for循环中使用了以下语句,因此必须清除这些值。运行此代码后,它指出在250附近有语法错误。代码如下

for (int i = 0; i < Rows.Count; i++)
{
    cmd.Parameters.Clear();

    struct Row = (struct)Rows[i];

    sql = "@RowName varchar(250) = null " +
    "INSERT INTO " +
        "database.dbo.table" +
             "(database.dbo.tabe.RowName) " +
    "VALUES " +
        "(@RowName) ";

 cmd.CommandText = sql;
 cmd.Parameters.AddWithValue("@RowValue ", Row.RowName);

}

在此先感谢您的更正,评论和建议。


问题答案:

您不必在SQL代码中重新声明变量。这应该工作:

sql =
    "INSERT INTO " +
        "database.dbo.table" +
            "(database.dbo.tabe.RowName) " +
    "VALUES " +
        "(@RowName) ";

cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@RowValue ", Row.RowName);


 类似资料:
  • 问题内容: 这些方法之间在功能上有区别吗? 编辑(从其他贡献者添加了此语法): 问题答案: 不,但第一个是首选样式。 编辑: 另一个选项是 此外,它还允许调用者使用varargs语法。

  • 问题内容: 我使用Entity Framework 4.2,并希望调用具有输入参数的存储过程。我用来调用存储过程。 但是,文档缺少用于正确映射参数的正确的调用语法。我的google-foo让我失望了,我们将不胜感激。 即我有一个程序 我试着用 和 但是它们都失败,并 在“ @ p1”附近 出现 错误语法 错误 。 问题答案: 根据您的基础数据库提供程序,可以使用以下两种方法之一。 或者 您还可以指

  • 问题内容: 这是我的JSF页面: 和豆 当我传递这样的参数时:/getshipment.xhtml?id=123 我得到输出 1 = 2 = 123 3 = 123 第二和第三种方法工作正常。为什么第一个不工作?什么是获取参数的正确方法? 问题答案: 尝试使用GlassFish 4至少使用2.2.2。先前的2.2.x Mojarra版本与新的JSF名称空间存在众所周知的兼容性问题。

  • 在执行此SQL脚本时,我得到以下错误:

  • 问题内容: 我正在使用vb.net和Access 2010作为数据库(.accdb) 这适用于MySQL: 但是,当将相同的查询传递给Access时,出现以下错误: 因此,我假设CASE语句的访问权限不同,或者访问是否完全具有该功能? PS is_enable为布尔值 问题答案: 弄清楚了: Access 2010没有CASE功能,我们改用SWITCH。 感谢

  • 我一直得到这个错误与我的SQL:我的SQL是正确的,它的工作在控制台中,但不是在python文件中。我认为错误是在参数中,因为代码似乎工作,就在参数之后,我的打印(完成)不打印:)但我看不到它:/ 这是我的代码(顺便说一句,我在数据库中使用全局变量g,它在我的其他函数中工作):