首先来总结一下进行数据库编程的全过程,这里用的是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创建对象,后面的(8)mysqldatareader.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();
}

 

 

原文 C#连接数据库SQL(2005)