初学问题
dataReader.GetString(dataReader.GetOrdinal("MyFieldName")); 无法取字符字段的值,而数据类型的字段的取值却没有问题,所工
---代码如下
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from TUSER WHERE name=@n";
cmd.Parameters.Add(new SqlParameter("n",textBox1.Text));
SqlDataReader reder = cmd.ExecuteReader();
if (reder.Read())
{
int ErrorTimes = reder.GetInt32(reder.GetOrdinal("ErrorT")); //这句OK
if (ErrorTimes > 3)
{
MessageBox.Show("登录次数过多,禁止登录");
return;
}
else
{
string dbpwd = reder.GetString(reder.GetOrdinal("name"));//这句就取不取值,确认后台有值不为空
if (dbpwd == textBox2.Text)
{
ReErrorTimes();
MessageBox.Show("登录成功");
}
else
{
MessageBox.Show("登录失败");
IncErrorTimes();
}
}
}
else
{
MessageBox.Show("用户名不存在!");
}
}
------解决方案--------------------------------------------------------
cmd.Parameters.Add(new SqlParameter("n",textBox1.Text));
cmd.Parameters.Add(new SqlParameter("@n",textBox1.Text));