拖放 SqlConnection,設定 ConnectionString:
Data Source=.;Initial Catalog=master;Integrated Security=SSPI
按鈕點擊事件測試連線:
private void btnConnect_Click(object sender, EventArgs e)
{
try
{
sqlConnection1.ConnectionString = "Data Source=.;Initial Catalog=master;Integrated Security=SSPI";
sqlConnection1.Open();
MessageBox.Show("連線成功!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
拖放 SqlCommand,設定 Connection 屬性指向 sqlConnection1。純碼建立資料表並插入三筆資料:
private void btnCreateTable_Click(object sender, EventArgs e)
{
try
{
sqlCommand1.Connection = sqlConnection1;
// 刪除舊表(忽略不存在例外)
sqlCommand1.CommandText = "DROP TABLE test42";
try { sqlCommand1.ExecuteNonQuery(); } catch { }
// 建立新表
sqlCommand1.CommandText = "CREATE TABLE test42 (id INT NOT NULL, name NVARCHAR(42))";
sqlCommand1.ExecuteNonQuery();
// 插入資料
sqlCommand1.CommandText = "INSERT INTO test42 VALUES (1, 'Bob Swart')";
sqlCommand1.ExecuteNonQuery();
sqlCommand1.CommandText = "INSERT INTO test42 VALUES (2, 'Erik Mark Pascal Swart')";
sqlCommand1.ExecuteNonQuery();
sqlCommand1.CommandText = "INSERT INTO test42 VALUES (3, 'Natasha Louise Delphine Swart')";
sqlCommand1.ExecuteNonQuery();
MessageBox.Show("資料表建立並插入完成!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
ExecuteNonQuery 用於不傳回資料列的 SQL(DDL、INSERT、UPDATE、DELETE)。
拖放三個元件:SqlDataAdapter、DataSet、DataGrid。
private void btnQuery_Click(object sender, EventArgs e)
{
try
{
sqlDataAdapter1.SelectCommand.Connection = sqlConnection1;
sqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM test42";
sqlDataAdapter1.Fill(dataSet1, "MyTable42");
dataGrid1.DataSource = dataSet1;
dataGrid1.DataMember = "MyTable42";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}


SqlConnection,設定 ConnectionStringSqlDataAdapter,設定 SelectCommand.Connection 與 CommandTextDataGrid,套用 Auto FormatForm_Load 撰寫填充與繫結碼:private void Form_Load(object sender, EventArgs e)
{
try
{
DataSet ds = new DataSet();
sqlDataAdapter1.Fill(ds, "MyTable42");
dataGrid1.DataSource = ds;
dataGrid1.DataMember = "MyTable42";
sqlConnection1.Close(); // 明確關閉
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
}
Fill 自動開啟,但必須明確呼叫 Close() 釋放。System.Data.SqlClient 完全足應付 MSDE/SQL Server 開發。