日期:2014-05-18  浏览次数:20464 次

c#与数据库,如何知道查询数据库中的某个值,如何将数据库中的某个元素写入textbox中
if (textBox1.Text != "")
  {
  SqlConnection connect = new SqlConnection("server=.;uid=sa;pwd=;database=student");
  connect.Open();
  SqlCommand com = new SqlCommand("select count(*) from Student where Sno='" + textBox1.Text + "'", connect);
  int count = com.ExecuteNonQuery();
  if (count > 0)
  {
  SqlDataAdapter sda = new SqlDataAdapter("select Sname from Student where Sno='" + textBox1.Text + "'", connect);
  DataSet ds = new DataSet();
  sda.Fill(ds, "student");
  textBox2.Text = ds.Tables[0].Columns.ToString();
  //SqlCommand com = new SqlCommand("delete from Student where Sno='" + textBox1.Text + "'");
  MessageBox.Show("报刊删除成功!", "删除成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
  }
  else
  {
  MessageBox.Show(Convert.ToString(count));
  }
  connect.Close();




运行count=-1,请教高手原因……还有如何将选择的Sname写入textbox2中……

------解决方案--------------------
count=-1
ExecuteNonQuery返回小于等于0的数,99%是查询失败
你监听一下,看看语句是什么,执行报不报错。
------解决方案--------------------
ExecuteNonQuery
对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。
不会返回select的查询后的行数,你这个就是错误的。
------解决方案--------------------
改成 textBox1.Text.trim() 这样 试一下
好像是这个 trim(). 就是去掉后面的空格。

textBox2.Text = ds.Tables[0].Columns.ToString();
改成
textBox2.Text = ds.Tables[0].Columns[1][1].ToString();
这里的[1][1] 根据你自己的需要制定第几行第几列

一个TEXT 控件属性文本只能接收一个值,你的 SqlDataAdapter sda = new SqlDataAdapter("select Sname from Student where Sno='" + textBox1.Text + "'", connect);
有可能查询出多行多列。所以得制定行列
------解决方案--------------------

SqlCommand com = new SqlCommand("select count(*) AS CNum from Student where Sno='" + textBox1.Text + "'", connect);

ds = com.ExecuteDataSet();

int count = ds.Tables[0].Rows[0]["CNum"];

至于你想给textbox2赋值,是一样的,不过最后赋值有且只能有一个值
只有一行数据,就是ds.Tables[0].Rows[0]["CNum"];
多行数据需要确定是第几行那一列

this.textbox2.Text = ds.Tables[0].Rows[0]["列名"].ToString();
------解决方案--------------------
探讨

引用:
count=-1
ExecuteNonQuery返回小于等于0的数,99%是查询失败
你监听一下,看看语句是什么,执行报不报错。

SqlConnection connect = new SqlConnection("server=.;uid=sa;pwd=;database=邮局订报管理系统");
……

------解决方案--------------------
探讨
if (textBox1.Text != "")
{
SqlConnection connect = new SqlConnection("server=.;uid=sa;pwd=;database=student");
connect.Open();
SqlCommand com = new SqlCommand("select count(*) from Student……

------解决方案--------------------
探讨

引用:
SqlCommand com = new SqlCommand("select count(*) AS CNum from Student where Sno='" + textBox1.Text + "'", connect);

ds = com.ExecuteDataSet();