在AppConfig.cs增加DataSouce連接字符串(SQL Server):
<connectionStrings> <add name="sql" connectionString="server=127.0.0.1;database=Test;uid=root;pwd=root;"/> </connectionStrings>
SqlHelper類:
using實質:在程序編譯階段,編譯器會自動將using語句生成為try-finally語句,並在finally塊中調用對象的Dispose方法,來清理資源。所以,using語句等效於try-finally語句。
using (Font f2 = new Font("Arial", 10, FontStyle.Bold))
{
font2.F();
}
被編譯器翻譯為:
Font f2 = new Font("Arial", 10, FontStyle.Bold);
try
{
font2.F();
}
finally
{
if (f2 != null) ((IDisposable)f2).Dispose();
}
不要在外部實例,會存在一些問題。
Font f2 = new Font("Arial", 10, FontStyle.Bold)
using ( f2 )
{
font2.F();
}
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Data; using System.Configuration;//Configuration表面配置,組態,構造 namespace BookDemo { class sqlHelper { public static string GetSqlConnectionString() { return ConfigurationManager.ConnectionStrings["Sql"].ConnectionString; } //適合增刪改操作,返回影響條數 public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(GetSqlConnectionString())) { using (SqlCommand comm = conn.CreateCommand()) { conn.Open(); comm.CommandText = sql; comm.Parameters.AddRange(parameters); return comm.ExecuteNonQuery(); } } } //查詢操作,返回查詢結果中的第一行第一列的值 public static object ExecuteScalar(string sql, params SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(GetSqlConnectionString())) { using (SqlCommand comm = conn.CreateCommand()) { conn.Open(); comm.CommandText = sql; comm.Parameters.AddRange(parameters); return comm.ExecuteScalar(); } } } //Adapter調整,查詢操作,返回DataTable public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters) { using (SqlDataAdapter adapter = new SqlDataAdapter(sql, GetSqlConnectionString())) { DataTable dt = new DataTable(); adapter.SelectCommand.Parameters.AddRange(parameters); adapter.Fill(dt); return dt; } } public static SqlDataReader ExecuteReader(string sqlText, params SqlParameter[] parameters) { //SqlDataReader要求,它讀取數據的時候有,它獨占它的SqlConnection對象,而且SqlConnection必須是Open狀態 SqlConnection conn = new SqlConnection(GetSqlConnectionString());//不要釋放連接,因為后面還需要連接打開狀態 SqlCommand cmd = conn.CreateCommand(); conn.Open(); cmd.CommandText = sqlText; cmd.Parameters.AddRange(parameters); //CommandBehavior.CloseConnection當SqlDataReader釋放的時候,順便把SqlConnection對象也釋放掉 return cmd.ExecuteReader(CommandBehavior.CloseConnection); } } }
測試調用:
string sql = "select * from Julius_Goods where name = @name"; DataTable dt = null; dt = sqlHelper.ExecuteDataTable(sql,new SqlParameter("@name", "aqq")); dataGridView1.DataSource = dt;