C#连接数据库SQL(2005)
首先來總結一下進行數據庫編程的全過程,這里用的是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
轉載于:https://www.cnblogs.com/wdpp/archive/2009/08/06/2387047.html
總結
以上是生活随笔為你收集整理的C#连接数据库SQL(2005)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux命令 — 设置或查看网络配置命
- 下一篇: c# 相对路径的一些文献