将Id设置为等于文本框中包含的数字
本文关键字:包含 数字 文本 设置 Id 于文本 | 更新日期: 2023-09-27 18:29:15
嗨,我想用表中的名称填充一个组合框,其中id是文本框中包含的数字。txtPartId是按照txtPart中的名称从另一个页面填充的。当我运行这个时,我得到的错误是"无效列名"txtPartId"
public ReList(string Str_value, string id)//declare value
{
InitializeComponent();
txtPart.Text = Str_value;
txtPartId.Text = id.ToString();
displayRe();
}
private void displayRe()
{
try
{
sc.Open();
string Query = "select * from Re where Part_PartID =txtPartId ";
SqlCommand createCommand = new SqlCommand(Query, sc);
SqlDataReader dr = createCommand.ExecuteReader();
while (dr.Read())
{
string Name = dr.GetString(1);
cbRe.Items.Add(Name);//Displaying a list in the Combo Box
}
sc.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
快速而肮脏的答案是进行以下更改:
string Query = "select * from Re where Part_PartID = " + txtPartId.Text;
假定Part_PartID是一个整数。
如果是字符串,则可以使用:
string Query = string.Format("select * from Re where Part_PartID = '{0}'", txtPartId.Text);
编译器不会为您将txtPartId
中的文本值注入到查询字符串中。
但是,这引入了SQL注入的范围,所以我强烈建议您参数化查询。在SO上有很多这样的例子。