當前位置:編程學習大全網 - 編程語言 - 求壹個C#winform登陸界面與sql數據庫有關的代碼

求壹個C#winform登陸界面與sql數據庫有關的代碼

我給妳我總結的壹些關於數據庫連接的代碼:

using System.Data.OleDb;//先引用命名空間

namespace DataReader1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

/*特別註意:DataReader是壹行壹行地對數據進行讀取的,DataReader表其實是壹個內存數據表,其與DataSet類似*/

private void Form1_Load(object sender, EventArgs e)

{

string connStr, selectCmd;//定義兩個字符串變量分別用來存儲連接字符及SQL命令代碼

connStr ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=SCOREDB.mdb";//給將要使用的連接數據庫的連接詞賦值

selectCmd = "SELECT * FROM SCORE";//給將要執行的SQL語句賦值

OleDbConnection conn;//定義連接類的對象

OleDbCommand cmd;//建立命令類的對象

OleDbDataReader reader;//建立讀取數據OleDbDataReader類的對象

conn = new OleDbConnection(connStr);//新建連接對象,相當於準備用鑰匙開門了,而connStr相當於鑰匙

conn.Open();//打開連接,數據庫這扇門打開啦

cmd = new OleDbCommand(selectCmd, conn);//使"連接"與SQL命令關聯起來,這樣使將要執行的SQL語句與數據庫關聯起來了

reader = cmd.ExecuteReader();/*執行SQL語句並根據返回的查詢結果(壹個數據表)創建OleDbDataReader對象,

並賦值給原先定義好用來存儲該對象的變量,此時reader相當於壹個表,

且此時只有第壹行(即表頭那壹行)的數據可以直接使用*/

for (i = 0; i < reader.FieldCount; i++)/*當i小於reader這個表的列數(fieldcount的值是從零開始的)的

時候,就執行花括弧裏面的代碼*/

{

txtShow.Text += reader.GetName(i) + "\t";//獲取第i列(從零開始的)的列名,

}

txtShow.Text += "\n\n";

while (reader.Read())/*先將reader表的可以直接讀取的數據行往下移壹行,這樣表頭下面的壹行可以直接使用了,就這樣

壹直壹行壹行 往下移,知道reader表格的最後壹行用完為止*/

{

for (i = 0; i < reader.FieldCount; i++)//reader.fieldcount的值等於reader這個表格的列數,但是調用某壹列的時候下表是從零開始計數的

{

txtShow.Text += reader [i] + "\t";//reader[i]用來獲取當前可以直接讀取數據那壹行的第i列的值(i從零開始)。

}

txtShow.Text += "\n";

}

reader.Close();//關閉DataReader對象,釋放資源,DataReader表其實是壹個內存數據表

conn.Close();//斷開數據庫連接

}

}

}

總結:對OleDbConnection ,OleDbCommand,OleDbDataReader三個類都要創建 對象,因為要這三個類聯合起來使用才能訪問數據庫

另壹種方法:使用DataSet和DataBaseAdapter來訪問數據表中的數據

string connStr, selectCmd;

connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=SCOREDB.mdb";

selectCmd = "Select * From SCORE";

OleDbConnection conn;

OleDbDataAdapter myAdapter;

DataSet myDataSet = new DataSet();//新建壹個空的沒有表格的DataSet對象

conn = new OleDbConnection(connStr);

myAdapter = new OleDbDataAdapter(selectCmd, conn);

myAdapter.Fill(myDataSet, "成績單");

DataTable myDataTable = myDataSet.Tables["成績單"];/*要訪問表中的某些內容則應該先將該DataSet中的表 賦值給DataTable myDataTable*/

for (k = 0; k < myDataTable.Columns.Count; k++)//myDataTable.Columns.Count為數據表的列數

{

txtShow.Text += myDataTable.Columns[k].ColumnName + "\t";

}

txtShow.Text += "\n";

for (i = 0; i < myDataTable.Rows.Count; i++)

{

for (j = 0; j < myDataTable.Columns.Count; j++)//myDataTable.Columns.Count的列數,從1開始的

{

txtShow.Text += myDataTable.Rows[i][j] + "\t";//相當於二維數組

}

txtShow.Text += "\n";

二:使用SQL的DataReader來讀取數據庫的信息

using System.Data.SqlClient;//先引用命名空間

// 開始從數據庫中獲取密碼

string conString = @"server=localhost;database=數據庫名稱;Integrated Security=SSPI";

string selectCmd = "SELECT ID,PassWord FROM userInfo";

SqlConnection con = new SqlConnection(conString);

SqlCommand cmd;

SqlDataReader reader;

con.Open();

cmd = new SqlCommand(selectCmd, con);

reader = cmd.ExecuteReader();

while (reader.Read())

{

ID = reader.GetString(0);

PassWord = reader.GetString(1);

}

reader.Close();

con.Close();

//獲取密碼完畢

總結:對SqlConnection,SqlCommand, SqlDataReader都要創建對象,因為要用到這三個 類!

三:使用DataSet訪問數據庫

using System.Data.OleDb;先引用命名空間

string connStr, selectCmd;//定義兩個字符串變量分別用來存儲連接字符及SQL命令代碼

DataSet myDataSet = new DataSet();//新建壹個 DataSet 用來在內存中存放數據表

OleDbConnection conn;//定義連接器

OleDbDataAdapter myAdapter;//定義適配器

connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DB.mdb";//連接字符串

conn = new OleDbConnection(connStr);/*開始連接,因為適配器會自動打開和關閉數據庫,因此不要使用open和close函數,但是還是要有開始連 接這壹步*/

selectCmd = "Select * From SCORE";

myAdapter = new OleDbDataAdapter(selectCmd, conn);//使SQL語句與"連接"關聯起來,這與OleDbCommand類相似

myAdapter.Fill(myDataSet, "成績單");//將SQL查詢到的數據填充到myDataSet,中的"成績單"這個數據表中去

selectCmd = "Select * From STOCK";

myAdapter = new OleDbDataAdapter(selectCmd, conn);

myAdapter.Fill(myDataSet, "股票行情表");

selectCmd = "Select * From BOOK";

myAdapter = new OleDbDataAdapter(selectCmd, conn);

myAdapter.Fill(myDataSet, "碁峰圖書");//壹個DataSet有三個數據表,即"成績單","股票行情表","碁峰圖書"

for (int i = 0; i < myDataSet.Tables.Count; i++)

{

cboTable.Items.Add(myDataSet.Tables[i].TableName);//將數據表的名稱添加到組合框中去

}

cboTable.Text = myDataSet.Tables[2].TableName;

dataGridView1.DataSource = myDataSet.Tables[2];/*將dataGridView1與DataSet綁定,dataGridView1.DataSource壹改變, dataGridView中顯示的數據就會改變*/

private void btnSelect_Click(object sender, EventArgs e)

{

dataGridView1.DataSource = myDataSet.Tables[cboTable.Text];//可以使用表的名字來訪問 DataSet中的表集

}

給DataSet中的表改名 字,代碼如下:

DataTableMapping changeName=new DataTableMapping( );

changeName=myAdapter.tableMapping.Add ("原表名","新表名");

如果看不懂我建議妳去看書,介紹壹本書給妳,《visual c#2005完全開發指南》

  • 上一篇:感謝科技產生的神器Livescribe智慧筆,就算是筆記苦手也能變高手
  • 下一篇:未來防火墻技術的發展趨勢
  • copyright 2024編程學習大全網