在文本框中获取数据

时间:2017-07-05 20:11:07

标签: c# sql textbox

我想做"当我写"项目代码"在文本框上单击搜索,它将搜索&发现sql数据库中的项目有该项目代码。并将其命名为textbox2(ITEM NAME)。我该怎么做 ?我可以把它带到colomn / raw但Idk我怎么能把这个项目名称带到textbox2

enter image description here

我可以搜索数据库上的数据并将其带到dataGridview。使用此代码

if (textBox1.Text.Trim() == "") errorProvider1.SetError(textBox1, "Fiil in the blanks");
else errorProvider1.SetError(textBox1, "");

conn.Open();
string regs = "SELECT * from stackTable where itemCodu=@Cod";

SqlCommand cmd = new SqlCommand(regs, conn);
cmd.Parameters.AddWithValue("@cod", textBox1.Text);

SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
gridView.DataSource = dt;
conn.Close();

---操作顺序(我想做的事:D)

  1. 在数据库中搜索

  2. 如果找到,请在Textbox2上提供数据

  3. 如果找不到,错误提供程序,消息文本框

1 个答案:

答案 0 :(得分:0)

所以你有一个数据表,所有你应该做的就是用一个简单的if语句检查填充后的计数:

if(dt.rows.count == 0)
{
    MessageBox.Show("Not Found!!");
}
else
{  
    textBox2.DataBindings.Add("Text", dt, "the column you want to use for textbox2");
}

您还应该使用using语句,以便正确处理所有对象。

这是我如何写你所拥有的一个例子:

textbox2.DataBinding.Clear(); //clear the databinding so it can be added for the new data found.

using(SqlConnection conn = new SqlConnection("Your connection string here")
using (SqlDataAdapter da = new SqlDataAdapter("SELECT * from stackTable where itemCodu=@Cod")
{
     da.SelectCommand.Parameters.Add("@Cod", sqlDbType.VarChar).Value = textBox1.Text; //see comment below for this change
     da.fill(dt);
     if (dt.Rows.Count == 0)
     {
         //display not found message
     }
     else
     {
         //bind to textbox (described above)
     }
 }

另请注意,通常最好指定参数应接收的数据类型,而不是允许隐式输入参数。这可以通过使用Add而不是AddWithValue

来完成
cmd.Parameters.Add("@cod", SqlType.VarChar).Value = textBox1.Text;

您的代码最后要注意的是,您可以在没有SqlCommand的情况下使用sqlDataAdapter。

我认为应该添加另一件事:

如果您知道您只会从搜索中收到1行或0行,并且您对绑定数据不感兴趣,则只需将文本框的.Text设置为该行的列即可。数据表。

例如,如果要在名为Item的表中显示一列,则只需使用

即可
textBox2.Text = dt.Rows[0]["Item"].ToString();