//取得表的主键
string sql1="SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME='tablename'";
SqlCommand comm=new SqlCommand(sql1,control.objConnection);
control.objConnection.Open();
SqlDataReader dr;
dr=comm.ExecuteReader(CommandBehavior.CloseConnection);
ArrayList al=new ArrayList();
while(dr.Read())
{
    al.Add(dr["COLUMN_NAME"].ToString());

}
control.objConnection.Close();在查询分析器里面可以得到记录结果,但程序执行到while(dr.Read())就跳过去了,并没有去读取记录

解决方案 »

  1.   

    数据库没有数据?
    //al.Add(dr["COLUMN_NAME"].ToString());
    string aaa = dr["COLUMN_NAME"].ToString();看有没有数据
      

  2.   

    这个表明你的sql语句没有取到任何数据
    建议检查一下你的sql语句
      

  3.   

    SqlCommand comm=new SqlCommand(sql1,control.objConnection);
    control.objConnection.Open();这两句位置对调一下
      

  4.   

    加一个条件判断是否有数据
    if (dr.HasRows)
    {
        while(dr.Read())
        {
           al.Add(dr["COLUMN_NAME"].ToString());

        }
    }
    else
    {
       MessageBox.Show("没有数据!")
    }