这是哪出错了,郁闷

crystal0207 2006-10-13 11:55:12
页面上有一个button1; 两个textbox, 分别命名为uname,pwd, 也就是一个用户登陆的页面,有如下代码 string a = uname.Text;
string mystring = "server=localhost;database=course;Trusted_Connection=yes";
SqlConnection conn = new SqlConnection(mystring);
conn .Open ();
string sel = "select * from grade where uid=" + a;
SqlCommand comm = new SqlCommand(sel, conn);
SqlDataReader dr = comm.ExecuteReader();
while (dr.Read())
{
if (uname.Text==dr["uid"].ToString ())
{
if (pwd.Text == dr["pwd"].ToString())
Label1.Text = dr["name"].ToString ();
}
}
说明:在数据库course中有一个名为grade的表,表中有一列为uid,一列为pwd,有条记录的uid 值为xiaoyang,pwd值为24549984
运行时,在uname中输入xiaoyang,在pwd中输入24549984,总是出错,出错信息为“列名xiaoyang无效,”这是怎么回事呢
...全文
95 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmbkeyes168 2006-10-13
  • 打赏
  • 举报
回复
你装的Sql server是不是windows 集成的,如果是的话,就要连接字符串中加Integrated Security=SSPI;不是的话,在连接字符串上要加上连接到数据库的用户及密码如:UID="账号";PWD="密码";
anuo06 2006-10-13
  • 打赏
  • 举报
回复
你的uid是字符串的类型,在sql中,字符串类型的数据是要加上单引号的,所以,改成
string sel = "select * from grade where uid='" +a+"'";
才可以,不过最好在前边的那句
string a = uname.Text;
改成string a=uname.Text.Trim();
吧,去掉多余的空格,避免不必要的麻烦,我吃过这种苦头,所以现在只要是对字符串操作,只要没有特殊要求,都加上trim();
deadshot123 2006-10-13
  • 打赏
  • 举报
回复
string sel = "select * from grade where uid=" + a;


modify to

string sel = "select * from grade where uid='" + a+"'";
真相重于对错 2006-10-13
  • 打赏
  • 举报
回复
"select * from grade where uid='" + a +" ' ";
hskire 2006-10-13
  • 打赏
  • 举报
回复
该说的.楼上几位都说完了,郁闷的人还是郁闷?

补一下你的CONN. OPEN()后没有conn.Close()的吗?
要注意
早起晚睡 2006-10-13
  • 打赏
  • 举报
回复
设置断点逐步运行一遍不就知道了吗!!!!!!!!
就知道那里出的毛病了呵呵呵
crystal0207 2006-10-13
  • 打赏
  • 举报
回复
请大家帮忙啊,问题解决就结贴
crystal0207 2006-10-13
  • 打赏
  • 举报
回复
运行后, label1中什么都没有显示啊

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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