Adapter 寫 DataTable
string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["key"].ConnectionString;
using (SqlConnection sqlConn = new SqlConnection(connStr))
{
sqlConn.Open();
using (SqlCommand cmd = new SqlCommand(queryStr, sqlConn))
{
cmd.Parameters.AddWithValue("paramX", variableX);
cmd.Parameters.AddWithValue("paramY", variableY);
cmd.Parameters.Add("@paramZ", SqlDbType.VarChar, 50).Value = "something";
DataTable dt = new DataTable();
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
adapter.Fill(dt);
}
}
}
DataReader
using (SqlConnection sqlConn = new SqlConnection(connStr))
{
sqlConn.Open();
using (SqlCommand cmd = new SqlCommand(queryStr, sqlConn))
{
cmd.Parameters.AddWithValue("paramsA", valA);
using (SqlDataReader dr = cmd.ExecuteReader())
{
// while (dr.Read()) for loop
if (dr.Read())
{
string cellValue = dr.GetString(dr.GetOrdinal("ColumnName"));
string cellValue2 = dr["ColumnName2"].ToString();
}
}
}
}
Stored Procedure
using (SqlConnection sqlConn = new SqlConnection(CONN_STR))
{
sqlConn.Open();
using (SqlCommand cmd = new SqlCommand("usp_xyz", sqlConn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("x", x);
DataTable dt = new DataTable();
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
adapter.Fill(dt);
}
}
}
TransactionScope & Update
using (TransactionScope scope = new TransactionScope())
{
string connStr = @"...";
using (SqlConnection sqlConn = new SqlConnection(connStr))
{
sqlConn.Open();
string queryStr = @"UPDATE Table SET ColC = @colC
WHERE ColA = @colA AND ColB = @colB ";
using (SqlCommand cmd = new SqlCommand(queryStr, sqlConn))
{
foreach (var item in items)
{
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("colA", item.A);
cmd.Parameters.AddWithValue("colB", item.B);
cmd.Parameters.Add("colC", SqlDbType.BigInt).Value = item.C;
cmd.Parameters.Add(new SqlParameter()
{
SqlDbType = SqlDbType.VarChar,
Size = 18,
ParameterName = "@colD",
Value = item.D
});
int effectRowCount = cmd.ExecuteNonQuery();
}
}
}
scope.Complete();
}
Connection string builder
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(); builder["Data Source"] = "ServerName"; builder["Integrated Security"] = true; builder["Initial Catalog"] = "DbName";
//Data Source=.;Initial Catalog=DbName;Integrated Security=True
DataTable dt = new DataTable(); using (SqlConnection sqlConn = new SqlConnection(builder.ConnectionString)) { sqlConn.Open(); using (SqlCommand cmd = new SqlCommand("SELECT TOP 1000 * FROM TheTable", sqlConn)) { using (SqlDataAdapter adapter = new SqlDataAdapter(cmd)) { adapter.Fill(dt); } } }
沒有留言:
張貼留言