-1

我想附加一个带有参数化查询的数据集。类似于用户在文本框中输入值然后点击提交按钮。

我创建了一个文本字段和一个单击按钮事件,例如:

 private void Btn_GetProjDetails_Click(object sender, EventArgs e)
    {
        string userEnteredProjId = tab3ProjIdInput.Text;
    }

但现在不知道如何在我的查询中使用这个 userEnteredProjId 变量?

我还没有尝试手动编码所有数据连接路径。而是在VS2012中添加了GUI来添加数据源。然后使用我了解到的这个数据源,我们可以添加数据集,然后使用这些数据集在我们的表单中拖放。所以我创建了一个数据集,然后创建了数据集工具箱,我添加了我的表并创建了一个查询,但不知道如何在我的查询中使用 userEnteredProjId。

在此处输入图像描述

4

2 回答 2

2

您永远不想只将用户的值插入到 SQL 查询中,因为这是一个巨大的 SQL 注入风险。最好使用参数,如果在使用参数之前对参数进行一些验证,那就更好了。这是使用命令参数的基本示例。

using (cmd command = new SqlCommand())
{
    string sql = "Select * from table where projid=@UserEnteredProjid";
    cmd.Connection = conn;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = sql;
    cmd.Parameters.AddWithValue("UserEnteredProjid", your_value_here);      
    SqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
    //do something;
    }
}
于 2013-03-26T21:24:54.363 回答
-2

好吧,您的查询只是我猜测的字符串变量,例如“从表中选择 *”。您只想获取一些用户输入的数据来增加您的查询:

string query = "select * from table where projid = " + UserEnteredProjid;

于 2013-03-26T21:17:09.417 回答