C#连接数据库SQL(2005)

时间:2021-11-07 04:20:54

首先来总结一下进行数据库编程的全过程,这里用的是SQL SERVER

(1) 建立SqlConnection对象以连接数据库

SqlConnection mysqlconnection=new SqlConnection("Server=localhost; database=yourdatabase;uid=sa;pwd=sa");

 

(2) 建立SqlCommand对象

SqlCommand mysqlcommand=mysqlconnection.CreateCommand();

 

(3) 设置SqlCommand对象的CommandText属性

mysqlcommand.CommandText="SELECT * FROM youydatabasetablename";

 

(4) 打开SqlConnection对象

mysqlconnection.open();

 

(5) 运行SELECT语句

SqlDataReader mysqldatareader=mysqlcommand.ExecuteReader();

 

本人初学,此处疑惑,还望高手解答:

此处没有SqlDataReader mysqldatareader=new SqlDataReader();而是直接执行,可以吗?

如果没有new创建对象,后面的(8mysqldatareader.Close(); 需要关闭吗?谢谢高人解答!!!

 

(6) SqlDataReader对象读行

mysqldatareader.Read();

 

(7) 显示SqlDataReader对象中的数值

yourtextbox.Text=mysqldatareader["ID"].ToString();      //ID是你数据库中的一项列名

 

(8) 关闭SqlDataReader对象

mysqldatareader.Close();

 

本人初学,此处疑惑,还望高手解答:

需要关闭mysqlcommand  mysqlcommand.Close() 还是因为调用了CreateCommand()方法而不需要关闭吗?

 

(9) 关闭SqlConnection对象

mysqlconnection.Close();

 

下面把过程呈现出来.

 

1、在我的程序中用的是SQL,所以在程序头前加上

     using System.Data.SqlClient;

 

2、在Form1中加入应有的控件,用于显示数据.

 

3、申请变量

        static private int m = 1;  //显示每条记录

        static private int k;        //得到记录条数

        SqlCommand mysqlcommand;

        SqlConnection mysqlconnection;

 

4、连接数据库,注意这里的连接字符串,用的是安全类型.

         try

         {           

                mysqlconnection = new SqlConnection("server=localhost;

                           Integrated Security=True;Database=myfriends");

                mysqlcommand = mysqlconnection.CreateCommand();

                                   //得到记录条数

                mysqlcommand.CommandText = "SELECT COUNT(*) FROM Friends";

                mysqlconnection.Open();

                k = (int)mysqlcommand.ExecuteScalar();

 

                GetData(1);

            }

            catch (SqlException ex)

            {

                MessageBox.Show("A SqlException was thrown,Number = " +

                              ex.Number +     //错误号

                              ex.Message +    //错误描述字符串

                              ex.StackTrace); //抛出异常的类名和方法名字符串

            }

 

5、如果数据库中有多条记录就要逐条显示

     在逐条显示的按钮事件中:

            m += 1;   //下一条索引值

            if (m > k)

            {

                MessageBox.Show("最后一条!将显示第一条记录!", "信息提示");

                m = 1;

            }

            this.hisname.Text = "";   //要显示下条,当然先清空

            this.hissex.Text = "";

            this.hisadress.Text = "";

            this.hisbirthday.Text = "";

 

            GetData(m);  //显示下第数据

 

6、在显示数据中用到显示下一条函数;

     private void GetData(int i)

    {

            mysqlcommand.CommandText = "SELECT ID,Name,Sex,"+  "birthday,address FROM Friends WHERE ID="+i;

            SqlDataReader mysqldatareader = mysqlcommand.ExecuteReader();

            mysqldatareader.Read();

 

            this.hisname.Text = mysqldatareader["Name"].ToString();

            this.hissex.Text = mysqldatareader["Sex"].ToString();

            this.hisadress.Text = mysqldatareader["Address"].ToString();

            this.hisbirthday.Text = mysqldatareader["Birthday"].ToString();

 

            mysqldatareader.Close();

     }

 


转载声明:本帖转自 http://www.cnblogs.com/bober/articles/640740.html