您好,登錄后才能下訂單哦!
怎么在C#中使用SqlConnection連接SQL Server?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
(1). 利用SqlConnection創(chuàng)建連接
public SQLServerAPI(string str_ip, string str_db, string str_user, string str_pwd) { m_strIp = str_ip; m_strDb = str_db; m_strUser = str_user; m_strPwd = str_pwd; //SQLServer身份驗證 m_strConnection = @"Data Source=" + m_strIp; m_strConnection += @";Initial Catalog=" + m_strDb; m_strConnection += @";UID=" + m_strUser + ";PWD=" + m_strPwd; m_strConnection += ";Connection Timeout=10;Pooling=true;Max Pool Size=100"; //Windows身份驗證 //m_strConnection = @"server=localhost\SQLEXPRESS;database=SQL2012Db;Trusted_Connection=SSPI;"; DisConnect(); m_Transaction = null; m_SqlConnection = new SqlConnection(m_strConnection); }
(2). 調(diào)用Open方法,以建立與服務器的會話。
/// <summary> /// 嘗試連接數(shù)據(jù)庫 /// </summary> private bool Connect() { if (m_SqlConnection == null) return false; try { m_SqlConnection.Open(); } catch (Exception e) { Debug.WriteLine(e.Message); return false; } return true; }
(3). 調(diào)用Close()方法終止會話
private bool DisConnect() { if (m_SqlConnection == null) return true; try { m_SqlConnection.Close(); } catch (Exception e) { Debug.WriteLine(e.Message); return false; } return true;
許多程序員都使連接一直處于打開狀態(tài),直到程序結束為止,這通常會浪費服務器資源。與這種打開一次,永不關閉的方式相比,使用連接池,在需要時打開和關閉連接要更加高效。
如下所示,我們封裝一個執(zhí)行SQL存儲過程的函數(shù):
/// <summary> /// 執(zhí)行返回查詢結果的存儲過程 /// </summary> /// <param name="procname">存儲過程名?</param> /// <param name="param">參數(shù)。函數(shù)正常返回時,所有類型為out的參數(shù)值也在對應位置上</param> /// <param name="result">返回查詢的結果</param> /// <returns>0正確,其他錯誤</returns> public int ExecQueryStoreProc(string procname, ref SqlParameter[] param, out DataTable result) { if (!Connect()) { result = null; return -1; } try { SqlCommand command = new SqlCommand(procname, m_SqlConnection); command.CommandType = CommandType.StoredProcedure; if (m_Transaction != null) command.Transaction = m_Transaction; SqlParameter rvalue = command.Parameters.Add(new SqlParameter("RETURN_VALUE", SqlDbType.Int)); rvalue.Direction = ParameterDirection.ReturnValue; if (param != null) command.Parameters.AddRange(param); result = new DataTable(); SqlDataReader reader = command.ExecuteReader(); if (reader.HasRows) result.Load(reader); return Convert.ToInt32(command.Parameters["RETURN_VALUE"].Value); } catch (Exception) { result = null; return -1; } finally { DisConnect(); } }
關于怎么在C#中使用SqlConnection連接SQL Server問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。