反思"列名无效"的问题

发帖解决了~!贴在地址:

http://topic.csdn.net/u/20110316/21/1ee00820-09f4-446a-a451-6e84694abfc5.html?829232601

 

——————————————————————————————————————————————————————————

 

初学.net, 今天连数据库,一直报“列名无效”的错。已经调了一个晚上,纠结啊~~

我用的环境:os: win xp sp3  ;
            db: sq server2005
            环境:visual studio 2005.

提示错误,我尝试过
1)核对db列名,无误。
2)sql语句用查询分析器执行,也正确。
3)看了网上N多帖子,有的说加' 或者 " ; 尝试良久,不成功。

     

  

 代码:
protected void Button5_Click(object sender, EventArgs e) { SqlConnection MyConnection; SqlCommand MyCommond; SqlDataReader MyDataReader; int iNum; MyConnection = new SqlConnection(); MyConnection.ConnectionString = "server=(local);user id=sa;pwd=;database=AndXu"; MyConnection.Open(); MyCommond = new SqlCommand(); MyCommond.CommandText = "select * from UserInfo where [UserName]= @name and [UserSex]= @sex " ; //这句新修改的 MyCommond.CommandType = CommandType.Text; MyCommond.Connection = MyConnection; MyCommond.Parameters.Add("@name",Name.Text); //从这里设置关联 MyCommond.Parameters.Add("@sex",Sex.Text); MyDataReader = MyCommond.ExecuteReader(); while (MyDataReader.Read()) { for (int inum = 0; inum < MyDataReader.FieldCount; inum++) { AllSult.Text = MyDataReader[0].ToString() + MyDataReader[1].ToString() + MyDataReader[2].ToString() + MyDataReader[3].ToString(); } } MyDataReader.Close(); //Copy and don't know y. MyConnection.Close(); } }

 

 

 

e....e..
  对不起大家,问题解决了。说出来 我都不好意思了。。。
   
  “我有两个数据库,下面有同一个表,其中我连的那个表恰没有UserSex 而是 UserLevel”

  多谢大家的帮忙,问题终于明朗了。
  不过我也学到不少,总结一下:
  1.如果提示 列名无效,可能是
  1)数据库连接错误。 改改语句试试,检查数据库连接。
  2)sql错误。带回查询分析器试试。
  3)(据楼上某仁兄说)可能是关键字命名冲突,也有可能。
  4)可能是数据类型冲突。检查是否匹配。
  照此顺序,依次检查,应该能找到症结。

  2.再则,打印出类名看看是否正确:
  for (int i = 0; i < MyDataReader.FieldCount; i++)
  {
  Response.Write(MyDataReader.GetName(i) + "<br>");
  }也是好法。

  哎,一个不细心,白白纠结了一天。  以后要多加小心~!

你可能感兴趣的:(sql,数据库,server,object,database,button)