C#與資料庫訪問技術總結(七)綜合示例

[0]發表於2014-10-31

綜合示例

  說明:前面介紹了那麼多,光說不練假把式,還是做個例項吧。

  表:首先你要準備一張表,這個自己準備吧。我們以學生表為例。

 

  1ExecuteScalar方法

    ExecuteScalar方法執行返回單個值的命令。例如,如果想獲取Student資料庫中表studentInfo的學生的總人數,則可以使用這個方法執行SQL查詢:

    Select count(*) from studentInfo .

(1) 建立Windows Application 應用程式

(2) Form1上新增一個按鈕Button控制元件和一個標Label籤控制元件 

(3) 雙擊按鈕,自動進入程式碼編輯介面

  首先新增名稱空間: using System.Data.SqlClient;

(4)編寫按鈕的Click事件的處理事件程式碼:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace DataBase

{

  public partial class Form1 : Form

{

public Form1()

{

  InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

  try

  {

    //定義命令文字

    string commandText = "select count(*) from studentInfo";

    //定義連線字串

    string connString="server=(local);Initial Catalog=Student;Integrated Security=SSPI;";

    //string connString= "server=(local);user id=sa;Initial Catalog=Student;pwd=;";

    //定義Connection物件

    SqlConnection conn = new SqlConnection();

    //設定Connection物件的ConnectionString屬性

    conn.ConnectionString = connString;

    //新建Command物件,此時conn物件並不需要開啟連線

    SqlCommand cmd = new SqlCommand(commandText, conn);

    //開啟連線

    conn.Open();

    //執行命令,返回結果

    string count = cmd.ExecuteScalar().ToString();

    //記得關閉連線

    conn.Close();

    this.label1.Text = "共有" + count + "位學生!";

}

catch (Exception ex)

{

    MessageBox.Show("資料庫連線失敗" + ex.Message);

}

    }

  }

}

 

  執行結果介面如圖:

   

分析程式碼:

1是引入名稱空間:System.Data.SqlClient,表示將使用SQL Server.NET 資料提供程式: using System.Data.SqlClient;

2是 按鈕button1_Click單擊事件中首先新建立了連線並設定了其連線字串屬性:

string connString="server=(local);Initial Catalog=Student;Integrated Security=SSPI;";

//string connString= "server=(local);user id=sa;Initial Catalog=Student;pwd=;";

//定義Connection物件

SqlConnection conn = new SqlConnection();

//設定Connection物件的ConnectionString屬性

conn.ConnectionString = connString;

第三步,新建Command 物件,並將命名文字和連線物件傳遞給其建構函式:

SqlCommand cmd = new SqlCommand(commandText, conn);

其中,commandText為最初定義的命名文字:

string commandText = "select count(*) from studentInfo";

此時conn物件沒有開啟,因為這不是必須的。

第四步 現在需要執行操作了,所以首先要開啟連線,然後執行操作:

conn.Open();

string count = cmd.ExecuteScalar().ToString();

由於ExecuteScalar()方法返回型別為object,因此使用了ToString()方法將其轉換為string以後賦值給count

注意:一般使用ExecuteScalar()方法時都必須用到型別轉換。

第五步資料庫訪問完畢以後應該立即關閉連線,這是一個好習慣:

corm.Close();

第六步最後將讀取的資訊通過label1顯示出來:

this.label1.Text="共有"+count+"位學生!";

上面的程式碼中並沒有指定Command物件的CommandType屬性,這時CommandType的值將為預設的Text,當然也可以通過如下程式碼顯示指定其型別,但這不是必須的。

cmd.CommandType=CommandType.Text;

相關文章