
使用SqlDatareader读取数据问题
问:使用SqlDataReader读取数据后,不能得到正确数据,得到的结果是,如果查找正确返回1,不正确返回0,没有返回希望查找到的数据代码如下:privatevoidb...
问:使用SqlDataReader读取数据后,不能得到正确数据,得到的结果是,如果查找正确返回1,不正确返回0,没有返回希望查找到的数据
代码如下:
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.ToString() == "" || textBox2.Text.ToString() == "")
{
MessageBox.Show("用户名或密码不能为空!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
string s = "Data Source=. \\SQLEXPRESS;AttachDbFilename=D:\\medicament.mdf;";
s += "Integrated Security=True;Connect Timeout=30;User Instance=True";
SqlConnection con = new SqlConnection(s);
string s1="select count(*) from [User] where user_Name='"+textBox1.Text.ToString()+"' and user_Password='"+textBox2.Text.ToString()+"'";
SqlCommand com = new SqlCommand(s1,con);
con.Open();
SqlDataReader reader = com.ExecuteReader();
if (reader.Read())
{
label4.Text = reader[0].ToString();
}
}
}
数据表如下图 展开
代码如下:
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.ToString() == "" || textBox2.Text.ToString() == "")
{
MessageBox.Show("用户名或密码不能为空!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
string s = "Data Source=. \\SQLEXPRESS;AttachDbFilename=D:\\medicament.mdf;";
s += "Integrated Security=True;Connect Timeout=30;User Instance=True";
SqlConnection con = new SqlConnection(s);
string s1="select count(*) from [User] where user_Name='"+textBox1.Text.ToString()+"' and user_Password='"+textBox2.Text.ToString()+"'";
SqlCommand com = new SqlCommand(s1,con);
con.Open();
SqlDataReader reader = com.ExecuteReader();
if (reader.Read())
{
label4.Text = reader[0].ToString();
}
}
}
数据表如下图 展开
3个回答
展开全部
加断点单步调试,如果reader确实有值的话那么考虑页面事件周期,如果reader没有值,那么检查连接和sql
顺便说一下,你这sql语句返回的是用户名和用户密码匹配的条数
是一个单行单列的数据集
顺便说一下,你这sql语句返回的是用户名和用户密码匹配的条数
是一个单行单列的数据集
展开全部
首先有一个误区,textBox1.Text已经获取到string内容了,不需要再ToString()了。
string s1="select count(*) from [User] where user_Name='"+textBox1.Text.ToString()+"' and user_Password='"+textBox2.Text.ToString()+"'";
你如果是想返回查找结果的数据集的话,那么是你的SQL语句写错了。
string s1="select user_Name from [User] where user_Name='"+textBox1.Text.ToString()+"' and user_Password='"+textBox2.Text.ToString()+"'";
SqlDataReader reader = com.ExecuteReader();
if (reader.Read())
{
label4.Text = "你登录的用户名是:" + reader[0].ToString();
}
string s1="select count(*) from [User] where user_Name='"+textBox1.Text.ToString()+"' and user_Password='"+textBox2.Text.ToString()+"'";
你如果是想返回查找结果的数据集的话,那么是你的SQL语句写错了。
string s1="select user_Name from [User] where user_Name='"+textBox1.Text.ToString()+"' and user_Password='"+textBox2.Text.ToString()+"'";
SqlDataReader reader = com.ExecuteReader();
if (reader.Read())
{
label4.Text = "你登录的用户名是:" + reader[0].ToString();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把sql输出出来,拿到数据库里执行一下看好不好使
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询