怎么在C#中使用SqlConnection连接SQL Server?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
(1). 利用SqlConnection创建连接
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). 调用Open方法,以建立与服务器的会话。
/// <summary> /// 尝试连接数据库 /// </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). 调用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;
许多程序员都使连接一直处于打开状态,直到程序结束为止,这通常会浪费服务器资源。与这种打开一次,永不关闭的方式相比,使用连接池,在需要时打开和关闭连接要更加高效。
如下所示,我们封装一个执行SQL存储过程的函数:
/// <summary> /// 执行返回查询结果的存储过程 /// </summary> /// <param name="procname">存储过程名?</param> /// <param name="param">参数。函数正常返回时,所有类型为out的参数值也在对应位置上</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问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。