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

请教sql语句的执行问题
当sqlcmd.CommandText = "Select id,qymc from wzqy where id=2";这句语句改为sqlcmd.CommandText = "Select id,qymc from wzqy"时,sr["qymc"]取出的是null

------解决方案--------------------
sr["qymc"]是什么东东?
------解决方案--------------------
庫裡面的值原本就是null吧
------解决方案--------------------
如果数据有以上情况 sr不就是null吗

所以reader是这样用的

C# code

while (reader.Read())
{
   //to do here
}

------解决方案--------------------
是不是没有调用sr.read()?
------解决方案--------------------
没明白
------解决方案--------------------
Select id,qymc from wzqy

sr["qymc"]拿出来的是最后一条记录的qymc 值...


------解决方案--------------------
看他是不是null是的话就没错..
------解决方案--------------------
…… 不可能啊

C# code

private   void   button1_Click(object   sender,   EventArgs   e) 
{ 
      SqlCommand   sqlcmd=new   SqlCommand();
       sqlcmd.CommandText   =   "Select id,qymc   from   wzqy "; 
      sqlcmd.Connection = conn;
      conn.Open();
      SqlDataReader   sr   =   sqlcmd.ExecuteReader(); 
      while(sr.Read()) 
      { 
        MessageBox.Show(sr["qymc"].ToString()); 
      } 
      conn.Close();
}

------解决方案--------------------
代码上没有问题,你检查一下数据库连接是不是连错数据库了?
------解决方案--------------------
C# code
private   void   button1_Click(object   sender,   EventArgs   e) 
{ 
      SqlCommand   sqlcmd=new   SqlCommand();
       sqlcmd.CommandText   =   "Select id,qymc   from   wzqy "; 
      sqlcmd.Connection = conn;
      conn.Open();
      SqlDataReader   sr   =   sqlcmd.ExecuteReader(); 
      
      if (sr.Read())
      {
      
          while(sr.Read()) 
          { 
             MessageBox.Show(sr["qymc"].ToString()); 
         } 
      }
conn.Close();

------解决方案--------------------
数据库中有多行,第二次取到了其他的行,而此行id就为null
------解决方案--------------------
数据库中有多行
------解决方案--------------------
与多少行没有关系,搂主看看你的conn 的connectionstring是不是连接正确了。