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

使查询与参数和“赞”一起使用。

段曦
2023-03-14
问题内容

我已经看到了许多有关在Sql查询中使用参数和“赞”的问题,但是我尝试了各种方法来对其进行编码,但仍然无法使我的查询给出结果。如果我在查询本身中输入一个值,它会很好地运行。当我运行列出的第一个查询时,出现错误“必须声明标量变量“
@Search”,但我认为我使用cmd.Parameters.AddWithValue语句做到了。有人可以看到我可能在做错什么吗?感谢您的任何帮助。

            //Declare the connection object
        SqlConnection Conn = new SqlConnection();
        Conn.ConnectionString = ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString;

        //Connect to the db
        Conn.Open();

        //Define query

        //This query doesn't work
        string sql = "SELECT CustomerID, LastName, FirstName, Email, Password, Address1, Address2, City, State, Zip, Phone, Fax FROM Customer WHERE (State LIKE '%' + @Search + '%')";

        //This query doesn't work either
        string sql = "SELECT CustomerID, LastName, FirstName, Email, Password, Address1, Address2, City, State, Zip, Phone, Fax FROM Customer WHERE State LIKE @Search";

        //This query works
        string sql = "SELECT CustomerID, LastName, FirstName, Email, Password, Address1, Address2, City, State, Zip, Phone, Fax FROM Customer WHERE State LIKE 'MI'";

        //Declare the Command
        SqlCommand cmd = new SqlCommand(sql, Conn);

        //Add the parameters needed for the SQL query
        cmd.Parameters.AddWithValue("@Search", "%" + txtSearch.Text + "%");

        //Declare a SQL Adapter
        SqlDataAdapter da = new SqlDataAdapter(sql, Conn);

        //Declare a DataTable
        DataTable dt = new DataTable();

        //Populate the DataTable
        da.Fill(dt);

        //Bind the Listview
        lv.DataSource = dt;
        lv.DataBind();

        dt.Dispose();
        da.Dispose();
        Conn.Close();

问题答案:

在上面的代码中,没有使用SqlDataAdapter中的参数,在下面的代码中,将在命令中使用SqlDataAdapter。

    //This query doesn't work
    string sql = "SELECT CustomerID, LastName, FirstName, Email, Password, Address1, Address2, City, State, Zip, Phone, Fax FROM Customer WHERE (State LIKE @Search)";

    //Declare the Command
    SqlCommand cmd = new SqlCommand(sql, Conn);

    //Add the parameters needed for the SQL query
    cmd.Parameters.AddWithValue("@Search", "%" + txtSearch.Text + "%");

  //Declare a SQL Adapter
    SqlDataAdapter da = new SqlDataAdapter();

    **sa.SelectCommand = cmd**

如果您不想使用参数化查询,则可以使用:

 //Declare the connection object
    //This query doesn't work
    string sql = "SELECT CustomerID, LastName, FirstName, Email, Password, Address1, Address2, City, State, Zip, Phone, Fax FROM Customer WHERE (State LIKE '%" + **txtSearch.Text** + "%')";

  //Declare a SQL Adapter
    SqlDataAdapter da = new SqlDataAdapter(sql, conn);


 类似资料:
  • 在我的索引中。js文件 在路由器文件中 邮递员: 我的GET URL如下所示:<代码>http://localhost:3000/api/v1/users?id=120622 它给出的错误: 我认为,根据我遵循的文档和教程,查询参数应该是这样给出的,但这个错误不会消失。 如果我删除了查询,那么其他endpoint就可以正常工作。 我搞不清楚这里出了什么问题。 我在过去的两天里一直被这个困扰着。只是

  • 问题内容: 我的数据库中有三个表。产品表,类型表和映射表Prod_Type。我的数据库是sql server,这就是为什么我不能使用group_concat函数而使用Stuff函数的原因。我的表结构如下 产品表 类型表 Prod_TypeTable 我能够将产品表加入到Prod_type的映射表中。我使用了东西查询来避免出现多个结果。我的查询是这样的: 我现在需要做的是将我先前的查询结果连接到类型

  • 问题内容: 我正在尝试在URL中传递路径参数和查询参数,但出现一个奇怪的错误。下面是代码 我的网址正在变成 我应该怎么做才能使其正常工作。我期望参数可以将id添加到网址中 请提出建议。提前致谢 问题答案: 我将使用from 来传递所有类型的URI参数。 例如:

  • 问题内容: 可能是这样的: 我想要获得与关键字相关联的唯一产品ID的数量。同一产品可能与某个关键字相关联两次,甚至更多,但我希望每个产品ID仅计一次 问题答案: 采用

  • 问题内容: 我刚刚开始学习Java流,并遇到了问题。请看下面的例子。这是Node类的一部分: 我的意图是在流中的每个节点上使用名称和结果参数调用#findChildren。我尝试使用方法引用Node :: findChildren时没有运气。我将不胜感激的解决方案与运营商。 是否可以将方法引用与参数一起使用?我喜欢流的想法,我只想使代码更具可读性。 实际上,我认为还有一个类似的问题,方法引用具有读

  • 问题内容: 我有一个查询来获取搜索结果,效果很好。 成功查询的示例: 从现在开始,我每个人都有一个以上的记录,这是我想要获得MAX值(最新ID)的地方。 我尝试了许多不同的查询,但始终收到错误消息 _ ,在非对象上调用成员函数rowCount()。_ 我了解该错误的含义,但我无法弄清楚该错误的出处和总体上的错误。 我未成功尝试的示例: 我在这里想念什么?有什么帮助吗? 问题答案: 这是你的条款: