将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);
        }
    }

将Id设置为等于文本框中包含的数字

快速而肮脏的答案是进行以下更改:

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上有很多这样的例子。