首先来总结一下进行数据库编程的全过程,这里用的是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();
}
转载声明:本帖转自 http://www.cnblogs.com/bober/articles/640740.html