首先來總結一下進行數據庫編程的全過程,這裡用的是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();
}