c# vs编程数据库查询出现的问题

valyl714 2014-04-08 12:30:09
在vs编程数据库查询时,出现下面问题:

我是想通过按button2 按钮,通过textbox1 输入单号来查询goods数据库的单号。然后显示在其他三个文本框中。

我的查询程序是这样写的:
private void button2_Click(object sender, EventArgs e)
{
int n = 0;
SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=goods;Integrated Security=True");
conn.Open();
string sql = "select *from goods where 单号="+textBox1.Text;
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader obj = cmd.ExecuteReader();
while (obj.Read())
{
n++;
textBoxNum.Text=Convert.ToString(obj.GetValue(0));
textBoxName.Text = Convert.ToString(obj.GetValue(1));
textBoxPhone.Text = Convert.ToString(obj.GetValue(2));

}
if (n == 0)
MessageBox.Show("数据库中没有这样的记录!");
conn.Close();
cmd.Dispose();
}
但是运行时停在while循环里,提示如下:

"3t“是数据库里面的一个单号。但是如果读的是3t的话那就说明我这个查询白做了。因为表明是按顺序查询。但是我查找的是另外一个元素。。。
还有obj.read()的返回值类型是bool,提示是什么意思?
不知道是什么原因,怎么解决?
很急!!谢谢!!
...全文
116 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
饮水需思源 2014-04-08
  • 打赏
  • 举报
回复
string sql = "select *from goods where 单号='"+textBox1.Text +"'";
hunter103 2014-04-08
  • 打赏
  • 举报
回复
string sql = "select *from goods where 单号='"+textBox1.Text +"'"; 单号不是int型要加引号。
直面人生 2014-04-08
  • 打赏
  • 举报
回复
obj.read()本来返回的就是一个bool类型的值阿。。判断是否读取到记录

霜寒月冷 2014-04-08
  • 打赏
  • 举报
回复
你数据表里面是整型,而你程序是字符串类型 所以报错了。要么把表重新设计,要么对数据进行约束,只能输入整型
LongRui888 2014-04-08
  • 打赏
  • 举报
回复
你输入的是字符串吗? 另外,你的单号是什么数据类型的,如果是数值类型的,但是你输入了3t,肯定会导致报错的。

34,589

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧