20141226--C#与SQL的连接

需要一个SQL的数据表,数据库名:xinxiku。表名是:Student。

image

在C#中创建一个新的WinForm,放入公共控件ListView,和一个Button控件。

并且在ListView属性中的Columns添加列名,列名尽量参照SQL的数据表中的列,以方便观察。

关于ListView的主要属性可以参考上一篇随笔。

image

 

创建一个类:xuesheng,定义5个变量并封装。

代码中加粗部分为数据库的链接代码,请注意其中的注释。

namespace WF4.App_Code
{
    public class xuesheng
    {
        private string _Sno;

        public string Sno
        {
            get { return _Sno; }
            set { _Sno = value; }
        }
        private string _Sname;

        public string Sname
        {
            get { return _Sname; }
            set { _Sname = value; }
        }
        private string _Ssex;

        public string Ssex
        {
            get { return _Ssex; }
            set { _Ssex = value; }
        }
        private string _Sbirthday;

        public string Sbirthday
        {
            get { return _Sbirthday; }
            set { _Sbirthday = value; }
        }
        private string _Class;

        public string Class
        {
            get { return _Class; }
            set { _Class = value; }
        }


public List<xuesheng> Selectxuesheng()//创建一个函数,
        {
            List<xuesheng> llist = new List<xuesheng>();//初始化List对象

            //连接数据库服务器
            //server=服务器名/ID;database=数据库名;user=用户登录名(默认sa);pwd=密码"
            string s = "server=.;database=xinxiku;user=sa;pwd=123";

            //using System.Data.SqlClient;需要引用
            SqlConnection conn = new SqlConnection(s);//初始化连接对象
            conn.Open();//开启数据库连接

            //SqlCommand的第三个重载方法,
            //第一个参数是SQL的查询语句,第二个参数是表示指定的连接
            SqlCommand cmd = new SqlCommand("select *from Student",conn);
            //数据库读取器 SqlDataReader   类似一个指针
            SqlDataReader dr =cmd.ExecuteReader();//执行语句,返回结果集,
            while (dr.Read())//dr.Read使指针从列名处开始,一行行往下挪,每挪一次,读取一行。
            {//这里可以根据 列名 选择性的读取 表中的数据 
                xuesheng xsdata = new xuesheng();//初始化xuesheng用来接收表的数据
                xsdata.Sno= dr["Sno"].ToString();//通过dr集合,数据库表列名对应获取一行中的某一列数据
                xsdata.Sname = dr["Sname"].ToString();
                xsdata.Ssex = dr["Ssex"].ToString();
                xsdata.Sbirthday = dr["Sbirthday"].ToString();
                xsdata.Class = dr["Class"].ToString();

                llist.Add(xsdata);//将读取到的一行的数据添加到llist集合中,下面返回的就是llist注意不要漏掉!!
            }

            conn.Close();//最后用完必须关闭数据库连接
            return llist;
        }
    }
}

C#中的代码读取的是SQL表中的数据,并不包括列名,但是注意数据库名、表名、列名都是区分大小写的,

Form3.cs 中的代码

private void button1_Click(object sender, EventArgs e)
        {
            listView1.Items.Clear();//清空ListView1中的文本
            xuesheng xss = new xuesheng();
            List<xuesheng> list = xss.Selectxuesheng();//调用方法Selectxuesheng()

            //在listView1中写人数据。
            if (list != null && list.Count > 0)//list对象为非空值并且元素个数大于0
            {
                for (int i = 0; i < list.Count; i++)
                {
                    xuesheng xsdata = list[i];
                    //以下的注释仅表示在第一次的for循环, i 每改变一次换一行。
                    listView1.Items.Add(xsdata.Sno);//只在第一列。从第二行开始,随后添加的元素将在第一列中往下排,
                    listView1.Items[i].SubItems.Add(xsdata.Sname);//从第二行中的第二列开始,
                    listView1.Items[i].SubItems.Add(xsdata.Ssex);//第二行中的第三列,
                    listView1.Items[i].SubItems.Add(xsdata.Sbirthday);//第二行中的第四列,
                    listView1.Items[i].SubItems.Add(xsdata.Class);//第二行中的第五列,
                }
            }
        }

这里只是查询所有数据,同样可以添加条件查询。将在随后的文章中介绍

posted @ 2014-12-26 12:07  Tirisfal  阅读(266)  评论(0)    收藏  举报