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

初学问题,datdataReader.GetString(dataReader.GetOrdinal("MyFieldName")) 无法取值
初学问题
  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));