user2631662
user2631662

Reputation: 855

set Id equal to number contained in textbox

Hi I want to fill a combo box with names from a table where id is the number contained in textbox.The txtPartId is populated from another page as is the name in txtPart. The error I get when I run this is "Invalid column name "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);
        }
    }

Upvotes: 0

Views: 67

Answers (1)

Daniel Kelley
Daniel Kelley

Reputation: 7737

The quick and dirty answer is to make the following change:

string Query = "select * from Re where Part_PartID = " + txtPartId.Text;

assuming Part_PartID is an integer.

If it is a string then you can use:

string Query = string.Format("select * from Re where Part_PartID = '{0}'", txtPartId.Text);

The compiler is not going to inject the value of the text in txtPartId into your query string for you.

However, that introduces the scope for SQL injection, so I strongly suggest you parameterize your query. There are many examples of this on SO.

Upvotes: 1

Related Questions