public Form1()
        {
            SqlCommand sqlCommand;
            SqlConnection sqlConnection;            string cn = "Server=ELVIS-PC;Initial Catalog=学生管理数据库; User ID=sa; Password=12345";
            sqlConnection=new   SqlConnection(cn); 
            string   sql= "select   *   from  学生表 "; 
            sqlCommand=new   SqlCommand(sql,sqlConnection);
             sqlConnection.Open();
           
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(sql, sqlConnection);
            SqlCommandBuilder cb = new SqlCommandBuilder(da);
            da.Fill(ds);
            try
            {
                         // ListViewItem[] l = new ListViewItem[ds.Tables[0].Rows.Count];
            ListViewItem l = null;
           
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    l = new ListViewItem(row["学号"].ToString());
                    l.SubItems.Add(row["姓名"].ToString());                    l.SubItems.Add(row["性别"].ToString());
                    l.SubItems.Add(row["年龄"].ToString());
                    l.SubItems.Add(row["系别"].ToString());
                    l.SubItems.Add(row["班级"].ToString());
                    listView1.Items.Add(l);                }
            }
            catch
            {
            }
        
           
           
           
           
           
            InitializeComponent();        }       
        
       
    }
}

解决方案 »

  1.   

    把try去掉,这里没必要加
    你catch里什么都没有,光try等于把错误都屏蔽了
    估计是tostring报错了
      

  2.   

    把try,catch去掉了,结果:  错误:未将对象引用设置到对象的实例。 listView1.Items.Add(l);
    那怎么改?
      

  3.   

    我试过了 private static DataTable Array2ConvertDataTable(string[] ColumnNames, string[,] array2)
            {
                DataTable dt = new DataTable();
                for (int i = 0; i < ColumnNames.Length; i++)
                {
                    dt.Columns.Add(ColumnNames[i]);
                }            for (int i = 0; i < array2.GetLength(0); i++)
                {
                    DataRow dr = dt.NewRow();
                    for (int j = 0; j < ColumnNames.Length; j++)
                    {
                        dr[j] = array2[i, j].ToString();
                    }
                    dt.Rows.Add(dr);
                }
                return dt;
            }
      private void button2_Click(object sender, EventArgs e)
            {
                string[,] array3D = {    
                                    { "1", "数组转DataTable 1", "0"},    
                                    { "2", "数组转DataTable 2", "1"},    
                                    { "3", "数组转DataTable 3", "1"},    
                                    { "4", "数组转DataTable 4", "2"},    
                                    { "5", "数组转DataTable 5", "2"},    
                                    { "6", "数组转DataTable 6", "5"},    
                                    };
                DataTable dt = Array2ConvertDataTable(new string[] { "Column1", "Column2", "Column3" }, array3D);
                dataGridView1.DataSource = Array2ConvertDataTable(new string[] { "Column1", "Column2", "Column3" }, array3D);
                ListViewItem l = null;
                foreach (DataRow row in dt.Rows)
                {
                    l = new ListViewItem(row[0].ToString());
                    l.SubItems.Add(row["Column1"].ToString());                l.SubItems.Add(row["Column2"].ToString());                l.SubItems.Add(row["Column3"].ToString());
                    listView1.Items.Add(l);
                }
            }至少可以显示第一列
    那估计是你没读出数据?
      

  4.   

    看dataTable有没有数据啊?Count是不是为0,为0则没有数据,大于0就读取了
      

  5.   

    ADO.NET:以针对“server=ELVIS-PC...."执行命令文本"Select *from .."是不是说读取数据成功了
      

  6.   

    ADO.NET:以针对“server=ELVIS-PC...."执行命令文本"Select *from .."是不是说读取数据成功了
      

  7.   

    datatable有数据!读取数据成功了,估计还是tostring
      

  8.   

    这哪看得出啊。你之间看DataTable。Rows。Count的值
      

  9.   

    如果只是读,可以这样
     public Form1()
      {
      SqlCommand sqlCommand;
      SqlConnection sqlConnection;  string cn = "Server=ELVIS-PC;Initial Catalog=学生管理数据库; User ID=sa; Password=12345";
      sqlConnection=new SqlConnection(cn);  
      string sql= "select * from 学生表 ";  
      sqlCommand=new SqlCommand(sql,sqlConnection);
      sqlConnection.Open();
     SqlDataReader jr = sqlCommand.ExecuteReader();
                  while (jr.Read() == true)
    {
                      item = listView1.Items.Add(jr[0].ToString());
                 
                      item.SubItems.Add(jr[1].ToString());
                      item.SubItems.Add(jr[2].ToString());
                      item.SubItems.Add(jr[3].ToString());
                     item.SubItems.Add(jr[4].ToString());
                     item.SubItems.Add(jr[5].ToString());
     }
                  jr.Close();
                  sqlConnection.Close();
      

  10.   

    数据已经加载到dataset上了,在如何显示到listview上?之前已经设好头行了。
      

  11.   

    还是用Datareader搞出来了!private void Form1_Load(object sender, EventArgs e)
            {
                SqlCommand sqlCommand;
                SqlConnection sqlConnection;            string cn = "Server=ELVIS-PC;Initial Catalog=学生管理数据库; User ID=sa; Password=12345";
                sqlConnection = new SqlConnection(cn);
                string sql = "select   *   from  学生表 ";
                sqlCommand = new SqlCommand(sql, sqlConnection);
                sqlConnection.Open();           SqlDataReader read;
                read=sqlCommand.ExecuteReader();
                if(!read.HasRows)
                {
                    MessageBox.Show("没有查询到数据");
                }
                while(read.Read())
                
                {  ListViewItem lvi = new ListViewItem(read["学号"].ToString());
                
                lvi.SubItems.AddRange(new string[] { read["姓名"].ToString(), 
                    read["性别"].ToString(),
                    read["年龄"].ToString(),
                    read["系别"].ToString(),
                    read["班级"].ToString()});
                listView1.Items.Add(lvi);
                    
                
                }
                read.Close();
                sqlConnection.Close();
                        ;