`SqlCommand` 封裝 SQL 命令或預存過程,是執行數據庫操作的核心對象。
cmd.Connection = conn;
// 或
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM mindata";
// 構造時指定
SqlCommand cmd = new SqlCommand("SELECT * FROM mindata");
// 多語句批次(分號分隔)
cmd.CommandText = "SELECT * FROM A; SELECT * FROM B;";
| 方法 | 返回 | 適用場景 |
|---|---|---|
| ExecuteReader | SqlDataReader | 查詢返回行集 |
| ExecuteNonQuery | int (影響行數) | INSERT/UPDATE/DELETE/DDL |
| ExecuteScalar | object (首行首列) | 聚合函數、單值查詢 |
| ExecuteXmlReader | XmlReader | FOR XML 查詢 |
cmd.CommandText = "SELECT * FROM Users WHERE Id = @id";
cmd.Parameters.AddWithValue("@id", 123);
// 或
cmd.Parameters.Add("@id", SqlDbType.Int).Value = 123;
SqlTransaction tran = conn.BeginTransaction();
cmd.Transaction = tran;
try {
cmd.ExecuteNonQuery();
tran.Commit();
} catch {
tran.Rollback();
}