我想附加一个带参数化查询的DataSet。像用户在文本框中输入值然后点击提交按钮。
我创建了一个文本字段和一个单击按钮事件,如:
private void Btn_GetProjDetails_Click(object sender, EventArgs e)
{
string userEnteredProjId = tab3ProjIdInput.Text;
}
但现在不知道如何在我的查询中使用这个userEnteredProjId变量?
我没有尝试手动编码所有数据连接路径。而是在VS2012中添加GUI以添加数据源。然后使用这个数据源我学会了我们可以添加数据集,然后使用这些DataSet来拖放我们的表单。所以我创建了一个数据集,然后创建了数据集工具箱,我添加了我的表并创建了一个查询但不知道如何在我的查询中使用userEnteredProjId。
答案 0 :(得分: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;
}
}
答案 1 :(得分:-2)
好吧,你的查询只是我猜的一个字符串变量,比如“select * from table”。您只想获取一些用户输入的数据来扩充您的查询:
string query =“select * from table where projid =”+ UserEnteredProjid;