綜合示例
說明:前面介紹了那麼多,光說不練假把式,還是做個例項吧。
表:首先你要準備一張表,這個自己準備吧。我們以學生表為例。
1、ExecuteScalar方法
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;