現(xiàn)在的大多數(shù)應(yīng)用程序都離不開數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù),因此,學(xué)習(xí)程序設(shè)計(jì)一定要學(xué)習(xí)數(shù)據(jù)庫(kù)編程。本文介紹了使用C#編寫數(shù)據(jù)庫(kù)控制臺(tái)程序的步驟與方法。
使用C#編寫數(shù)據(jù)庫(kù)應(yīng)用程序主要有下面幾個(gè)步驟(注,本文暫未用到數(shù)據(jù)適配器和數(shù)據(jù)集,相關(guān)內(nèi)容參加以后的相關(guān)文章,并且本文暫只講解在C#中讀取相關(guān)數(shù)據(jù)的方法。):
(1)引入相關(guān)的命名空間;
(2)建立數(shù)據(jù)庫(kù)連接對(duì)象Connection,并指定連接字符串;
(3)建立命令對(duì)象Command,并指定命令對(duì)象所使用的連接和命令文本內(nèi)容(SQL)
(3)建立數(shù)據(jù)庫(kù)讀取器,DataReader;
(4)執(zhí)行命令對(duì)象,并使用DataReader對(duì)象指向結(jié)果集;
(5)使用循環(huán)語(yǔ)句輸出打印相關(guān)內(nèi)容;
(6)關(guān)閉命令對(duì)象和連接對(duì)象。
在C#2005中主要提供了三種用于與數(shù)據(jù)庫(kù)進(jìn)行交互的模式:OleDb模式、Odbc模式和SqlClient模式,其中SqlClient模式主要是針對(duì)SQL Server而設(shè)計(jì)的,因此項(xiàng)目中如果要使用SQL Server數(shù)據(jù)庫(kù)的話可以選擇SqlClient模式以提高性能。
使用不同的數(shù)據(jù)庫(kù)連接模式,要引入不同的命名空間、使用不同的數(shù)據(jù)庫(kù)連接對(duì)象、命令對(duì)象和數(shù)據(jù)讀取器,使用的連接字符串,以及以后要談到的數(shù)據(jù)適配器都是不同的。
本文暫時(shí)以查詢學(xué)生的信息,并在屏幕打印輸出為例講解C#操作數(shù)據(jù)庫(kù)的具體步驟和過(guò)程。
下面給出一個(gè)數(shù)據(jù)庫(kù)操作的例子。假設(shè)在Sql Server中有一個(gè)數(shù)據(jù)庫(kù)test,其存放著一個(gè)數(shù)據(jù)表名為student,其結(jié)構(gòu)為student(xh,xm,xb,mz),下面使用SqlClient模式連接數(shù)據(jù)庫(kù):
/**************************************
*
* 本程序演示數(shù)據(jù)庫(kù)的操作
* 使用Sql Server2000數(shù)據(jù)庫(kù)操作
*
* ************************************/
using System;
using System.Data;
using System.Data.SqlClient;
class DbOper
{
static void Main()
{
//定義連接字符串
string connString;
connString="server=.;uid=sa;pwd=;database=test;";
//定義連接對(duì)象sConn
SqlConnection sConn = new SqlConnection(connString);
try
{
//打開連接
sConn.Open();
}
catch(Exception ex)
{
//給出錯(cuò)誤信息
Console.WriteLine("連接錯(cuò)誤:"+ex.Message);
}
//定義SQL查詢語(yǔ)句
string sql;
sql = "select * from student";
//定義命令對(duì)象sCmd
SqlCommand sCmd = new SqlCommand(sql,sConn);
//定義數(shù)據(jù)讀取器sdr
SqlDataReader sdr=null;
//執(zhí)行命令對(duì)象sCmd并賦值給sdr
sdr = sCmd.ExecuteReader();
//循環(huán)輸出sdr中的內(nèi)容
Console.WriteLine(" 學(xué) 號(hào) 姓名 性別民族");
while(sdr.Read())
{
Console.WriteLine(sdr[0]+" "+sdr["xm"]+sdr["xb"]+" "+sdr["mz"]);
}
//關(guān)閉數(shù)據(jù)讀取器
sdr.Close();
//關(guān)閉數(shù)據(jù)庫(kù)連接
sConn.Close();
}
}
運(yùn)行結(jié)果如下:
新聞熱點(diǎn)
疑難解答
圖片精選