這里我們主要介紹C#創(chuàng)建SQL Server數(shù)據(jù)庫(kù),包括介紹通過(guò)CREATE TABLE這句SQL語(yǔ)句完成創(chuàng)建表的操作等方面。
在創(chuàng)建了數(shù)據(jù)庫(kù)連接對(duì)象后,我們就可以在程序中運(yùn)用它了。首先,我們?cè)诔绦蛑袆?dòng)態(tài)地C#創(chuàng)建SQL Server數(shù)據(jù)庫(kù)。我們將數(shù)據(jù)庫(kù)創(chuàng)建在C:\mysql目錄下,所以讀者要練習(xí)該實(shí)例的話得先在C:下創(chuàng)建一個(gè)名為mysql的文件夾,否則會(huì)出錯(cuò)!
創(chuàng)建數(shù)據(jù)庫(kù)的關(guān)鍵是函數(shù)中的sql對(duì)象,通過(guò)該對(duì)象我們指定了數(shù)據(jù)庫(kù)文件的一些基本屬性。之后,我們新創(chuàng)建了一個(gè)SqlCommand對(duì)象,通過(guò)該對(duì)象我們就實(shí)際完成了對(duì)數(shù)據(jù)庫(kù)的操作。函數(shù)的實(shí)現(xiàn)如下:
private void button1_Click(object sender, System.EventArgs e)
{
// 打開(kāi)數(shù)據(jù)庫(kù)連接
if( conn.State != ConnectionState.Open) conn.Open();
string sql = "CREATE DATABASE mydb ON PRIMARY" +"(name=test_data,filename = ‘C:\\mysql\\mydb_data.mdf’, size=3," +"maxsize=5,filegrowth=10%)log on" +"(name=mydbb_log,filename=‘C:\\mysql\\mydb_log.ldf’,size=3," +"maxsize=20,filegrowth=1)";
cmd = new SqlCommand(sql, conn);
try
{
cmd.ExecuteNonQuery();
}
catch(SqlException ae)
{
MessageBox.Show(ae.Message.ToString());
}
}
創(chuàng)建了數(shù)據(jù)庫(kù)后,我們得為其創(chuàng)建表,表是數(shù)據(jù)庫(kù)中的基本對(duì)象。我們通過(guò)CREATE TABLE這句SQL語(yǔ)句完成創(chuàng)建表的操作,表被創(chuàng)建后,我們就確定了其模式(Schema)。之后,我們還通過(guò)INSERT語(yǔ)句向該表中添加了四條記錄以為后用。函數(shù)的實(shí)現(xiàn)如下:
private void button2_Click(object sender, System.EventArgs e)
{
// 打開(kāi)數(shù)據(jù)庫(kù)連接
if( conn.State == ConnectionState.Open) conn.Close();
ConnectionString ="Integrated Security=SSPI;" + "Initial Catalog=mydb;" + "Data Source=localhost;";
conn.ConnectionString = ConnectionString;
conn.Open();
sql = "CREATE TABLE myTable"+ "(myId INTEGER CONSTRAINT PKeyMyId PRIMARY KEY,"+ "myName CHAR(50),
myAddress CHAR(255), myBalance FLOAT)";
cmd = new SqlCommand(sql, conn);
try
{
cmd.ExecuteNonQuery();
// 向表中添加記錄
sql = "INSERT INTO myTable(myId, myName, myAddress, myBalance) "+ "VALUES (1001, ‘Puneet Nehra’, ‘A 449 Sect 19, DELHI’, 23.98 ) " ;
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
sql = "INSERT INTO myTable(myId, myName,myAddress, myBalance) "+ "VALUES (1002, ‘Anoop Singh’, ‘Lodi Road, DELHI’, 353.64) " ;
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
sql = "INSERT INTO myTable(myId, myName, myAddress, myBalance) "+ "VALUES (1003, ‘Rakesh M’, ‘Nag Chowk, Jabalpur M.P.’, 43.43) " ;
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
sql = "INSERT INTO myTable(myId, myName, myAddress, myBalance) "+ "VALUES (1004, ‘Madan Kesh’, ‘4th Street, Lane 3, DELHI’, 23.00) " ;
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}
catch(SqlExceptionae)
{
MessageBox.Show(ae.Message.ToString()); } }
完成此操作后,我們可以在本機(jī)的SQL Sever企業(yè)管理器中打開(kāi)mydb數(shù)據(jù)庫(kù)并找到該表了。