怎样将用sql语句查询出来的数据逐条放入listView1网格中;
假如我现在已经设置了listView1有两列,分别显示ID和NAME;
我要从student表中查出所有记录,并且放入listView1网格中,请问代码该如何写?能提供个范例最好。本人只有这么一点分了,望各位不吝赐教!谢谢!

解决方案 »

  1.   

    DataSet ds = ...(取数据集)
    DataTable dt = ds.Tables[0];
    DataRow[] drs = dt.Select();private void InitLsvSended(DataRow[] drs)
    {
    char[] chrSeperator = new char [] {';'};
    string[] rowStrArr;
    //clear the listview.
    this.lsvSended .Items .Clear ();
    //write the listview by loop.
    foreach(DataRow dr in drs)
    {
    string strItem = dr["Id"].ToString ()+";"+dr["Name"].ToString ();
    rowStrArr = strItem.Split (chrSeperator);
    ListViewItem lsvItem = new ListViewItem (rowStrArr);
    lsvItem.Tag = dr["Ticket_id"].ToString ();
    //bind to the listview.
    this.lsvSended .Items .Add (lsvItem);
    }
    }
    ////////
    在此之前,要将listview1的columns属性里加上两列:ID和NAME。
    这样就可以棒定上去了。
      

  2.   

    这是我拷贝别的代码,
    更正:private void InitLsvSended->private void InitListView1
      

  3.   

    可以把取数据集写成一个方法:
    如果在form load的时候就棒定的话,那就在form_load的事件里初始化数据集,然后调用该方法即可。其他类同。
      

  4.   

    取出的记录集RecordSet,然后分别去字段,取出的内容分别写入List
      

  5.   

    private void InitListView(DataTable dt)
    {
      //listView1.Items.Clear();
      //listView1.Columns.Clear();
      listView1.Columns.Add("列1的中文名称",宽度, 对齐方式);
      listView1.Columns.Add("姓名",40, HorizontalAlignment.Left);
      foreach(DataRow dr in dt.Rows)
      {
        listView1.Items.Add(new ListViewItem(new string[]{dr[1].ToString(),dr[2].ToString()}));
      }
    }
      

  6.   

    Try
                ' 打开连接
                con.Open()            ' 执行数据命令并取得(建立)数据读取器
                myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection Or CommandBehavior.SingleResult)            ' 设定 ListView 控件的各栏的栏标题
                For i As Integer = 0 To myReader.FieldCount - 1
                    ListView1.Columns.Add(myReader.GetName(i), 80, HorizontalAlignment.Left)
                Next            ' 建立一个 Object 类型的数组以便在 GetValues 方法中使用
                Dim MyColumnValues(myReader.FieldCount - 1) As Object            ' 循序移至各列并取得各字段的内容,然后以一个数组
                ' 的形式将各记录加至 ListView 控件中。
                If myReader.HasRows Then
                    While myReader.Read()                    ' 将当前记录所有字段的内容存入数组 MyColumnValues 中
                        myReader.GetValues(MyColumnValues)                    ' 建立一个字符串数组
                        Dim MyColumnData(myReader.FieldCount - 1) As String                    ' 将 MyColumnValues 数组中的所有元素转换成字符串然后赋给 MyColumnData 数组
                        For i As Integer = 0 To myReader.FieldCount - 1
                            MyColumnData(i) = Convert.ToString(MyColumnValues(i))
                        Next                    Dim NewItem As New ListViewItem(MyColumnData)                    ' 将项目加至 ListView 控件中
                        ListView1.Items.Add(NewItem)
                    End While
                End If
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            Finally
                ' 关闭数据读取器
                myReader.Close()
            End Try
      

  7.   

    我有比较完整的代码,我现在也在做这个,可以用个数组来传值
    public static  ETCLASS[] Look
    {

    get
    {
    ETCLASS[] TO=null;

    string ConStr=@"server=(local);"+"Integrated Security=true;"+"database=tl";
    SqlConnection SqlConn=new SqlConnection (ConStr);
    try
    {
    SqlConn.Open ();
    string Sql="SELECT * FROM Score where "+condition;


    SqlCommand SqlCmd=new SqlCommand(Sql.ToString (),SqlConn);
    SqlDataReader SqlReader=SqlCmd.ExecuteReader();
    TO=new ETCLASS[100];
    //MessageBox.Show (condition1[0]);
     
      
    int i=0;

    while(SqlReader.Read())
    {
    // AdminObject AO=new AdminObject();
    TO[i]=new ETCLASS();
    TO[i].ID=SqlReader["ID"].ToString ();
    TO[i].Pname=SqlReader["Pname"].ToString ();
    TO[i].c=SqlReader["c"].ToString ();
    TO[i].DB=SqlReader["DB"].ToString ();
    TO[i].Java=SqlReader["Java"].ToString();
    TO[i].mathe=SqlReader["mathe"].ToString ();
    TO[i].System=SqlReader["System"].ToString();
    TO[i].URL=SqlReader["URL"].ToString();
    TO[i].XML=SqlReader["XML"].ToString();
        i++;
                            
    }

    }
    catch //(Exception e)
    {
    // return false;
    // MessageBox.Show (e.Message );

    }
    finally
    {
    SqlConn.Close();
    } return TO;

    }
    这个是数据库操作
    private void bnbLook_Click(object sender, System.EventArgs e)
    {
    string na=this.txtID.Text.ToString();
    ETCLASS UN=new ETCLASS();
    ETCLASS.condition="ID='"+txtID.Text.Trim() +"'";
    ETCLASS[] TO1=null;

    TO1=ETCLASS.Look;


    if (txtID.Text.Trim() == "" )
    {
    MessageBox.Show(this,"请输入学号!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
    return;
    }
    else
    {
    MessageBox.Show(TO1[0].mathe.ToString());
                    try
                    {
                        //MessageBox.Show(AO[0].adminName);

                        for(int i=0;i<TO1.Length;i++)
        {
                            if(TO1[i]==null)
        {
    // MessageBox.Show("ww");
                                break;
        }

                        ///////////////////////////////listview显示
                        this.listView1.Items.Insert(0,TO1[i].ID.ToString());
    listView1.Items[0].SubItems .Add (TO1[i].Pname.Trim ());
    listView1.Items[0].SubItems .Add (TO1[i].mathe.Trim ());
                            listView1.Items[0].SubItems .Add (TO1[i].c.Trim ());
                            listView1.Items[0].SubItems .Add (TO1[i].XML.Trim ());
                            listView1.Items[0].SubItems .Add (TO1[i].URL.Trim ());
                            listView1.Items[0].SubItems .Add (TO1[i].Java.Trim());
                            listView1.Items[0].SubItems .Add (TO1[i].DB.Trim ());
                            listView1.Items[0].SubItems .Add (TO1[i].System.Trim ());

    //listView1.Items[0].SubItems .Add (TO1[i].Add.Trim ());
    //MessageBox.Show("ddd");
        }
        MessageBox.Show(this.listView1.Items.Count.ToString());
                    }
    catch(Exception exc)
    {
    MessageBox.Show(exc.Message);
    MessageBox.Show(this.listView1.Items.Count.ToString());
    }
    }


    }
    这个是窗体中的