zoukankan      html  css  js  c++  java
  • data source 和initial catalog

     

    initial catalog与database的区别是什么
    Initial Catalog: 
    DataBase: 
    两者没有任何区别只是名称不一样,就好像是人类的真实姓名与曾用名一样。。都可以叫你。

    ********************************************

    Integrated Security=SSPI 这个表示以当前WINDOWS系统用户身去登录SQL SERVER服务器,如果SQL SERVER服务器不支持这种方式登录时,就会出错。 
    你可以使用SQL SERVER的用户名和密码进行登录,如: 
    "Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=数据库名;Data Source=192.168.0.1;User ID=sa;Password=密码"


    ***************************************************

    Integrated Security - 或 - Trusted_Connection 'false' 当为 false 时,将在连接中指定用户 ID 和密码。当为 true 时,将使用当前的 Windows 帐户凭据进行身份验证。 可识别的值为 true、false、yes、no 以及与 true 等效的 sspi(强烈推荐)。 


    *************************************************

    ADO.net 中数据库连接方式 
    System.Data.SqlClient.SqlConnection 
    常用的一些连接字符串(C#代码):

    SqlConnection conn = new SqlConnection( “Server=(local);Integrated Security=SSPI;database=Pubs“);

    SqlConnection conn = new SqlConnection(“server=(local)NetSDK;database=pubs;Integrated Security=SSPI“);

    SqlConnection conn = new SqlConnection(“Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;“);

    SqlConnection conn = new SqlConnection(“ data source=(local);initial catalog=xr;integrated security=SSPI; 
    persist security info=False;workstation id=XURUI;packet size=4096; “);

    SqlConnection myConn = new System.Data.SqlClient.SqlConnection(“Persist Security Info=False;Integrated 
    Security=SSPI;database=northwind;server=mySQLServer“);

    SqlConnection conn = new SqlConnection( “ uid=sa;pwd=passwords;initial catalog=pubs;data source=127.0.0.1;Connect Timeout=900“);

     

     

     

    region "私有变量"

    /// <summary>

    /// 表示一个到数据库的打开的连接

    /// </summary>

            private System.Data.SqlClient.SqlConnection Con = new SqlConnection();

    /// <summary>

    /// 表示执行对象是SQl还是存储过程

    /// </summary>

            private System.Data.SqlClient.SqlCommand Cmd = new SqlCommand();

    /// <summary>

    /// 表示用于填充 System.Data.DataSet 和更新数据库的一组数据命令和到数据库的连接

    /// </summary>

            private System.Data.SqlClient.SqlDataAdapter Dtapt = new SqlDataAdapter();

    /// <summary>

    /// 表示要在数据库中生成的事务

    /// </summary>

            private System.Data.SqlClient.SqlTransaction sqlTran;

    /// <summary>

    /// 提供从数据源读取数据行的只进流的方法

    /// </summary>

            private SqlDataReader dtrValue = null;

    #endregion

    #region"数据库连接处理"

    /// <summary>

    /// 获得webconfig中的 默认 Sql连接字符串

    /// </summary>

            private string strConSql

    {

    get

    {

    return System.Configuration.ConfigurationManager.AppSettings["SQLConntionStr"].ToString();

    }

    }

    #endregion

    #region "事务处理"

    /// <summary>

    /// 开始事务

    /// </summary>

            public void BeginTransaction()

    {

    if (Con.State == ConnectionState.Closed)

    {

    //打开连接

                    OpenCn();

    //开始事务

                    if (sqlTran == null)

    {

    sqlTran = Con.BeginTransaction();

    }

    Cmd.Transaction = sqlTran;

    }

    }

    /// <summary>

    /// 提交事务

    /// </summary>

            public void CommitTransection()

    {

    sqlTran.Commit();

    sqlTran.Dispose();

    sqlTran = null;

    CloseCn();

    }

    /// <summary>

    /// 回滚事务

    /// </summary>

            public void RollbackTransection()

    {

    sqlTran.Rollback();

    sqlTran.Dispose();

    sqlTran = null;

    CloseCn();

    }

    #endregion

    #region"返回分页表数据Datatable [Read] 方式获取数据,数据量建议在查询结果在10000条记录内"

    /// <summary>

    /// 用于分页控件,返回需要显示页的数据和记录条数

    /// </summary>

    /// <param name="p_strSql">SQL语句</param>

    /// <param name="p_CmdParms">SQL参数和其对应值</param>

    /// <param name="p_intStart">开始记录</param>

    /// <param name="p_intPageSize">每页显示记录条数</param>

    /// <param name="out_intCount">返回记录条数</param>

    /// <returns>查询数据集</returns>

            protected DataTable ExecuteReadTable(string p_strSql, SqlParameter[] p_CmdParms, int p_intStart, int p_intPageSize, ref  int out_intCount)

    {

    return ExecuteReadTable(CommandType.Text, p_strSql, p_CmdParms, p_intStart, p_intPageSize, ref out_intCount);

    }

    /// <summary>

    /// 1. 根据存储过程和参数值得到DataTable 值

    /// 2. 根据SQL的得到DataTable 值

    /// </summary>

    /// <param name="p_objCmdType">是存储过程还是SQL</param>

    /// <param name="p_intStart">开始记录</param>

    /// <param name="p_intPageSize">每页显示条数</param>

    /// <param name="p_strSql">可是是SQL 也可以是存储过程</param>

    /// <param name="p_CmdParms">SqlParameter参数列表</param>

    /// <param name="out_intCount">返回总记录数</param>

    /// <returns>返回DataTable</returns>

            protected DataTable ExecuteReadTable(CommandType p_objCmdType, string p_strSql, SqlParameter[] p_CmdParms, int p_intStart, int p_intPageSize, ref  int out_intCount)

    {

    DataTable dtb = new DataTable();

    DateTime dtStart = DateTime.Now;

    dtrValue = ExecuteReader(p_objCmdType, p_strSql, p_CmdParms);

    if (dtrValue == null)

    {

    CloseCn();

    return dtb;

    }

    int intColLength = dtrValue.FieldCount;

    for (int i = 0; i < intColLength; i++)

    {

    //构造sql的table

                    dtb.Columns.Add(dtrValue.GetName(i), GetColType(i));

    }

    DataRow dr;

    int k = 0;

    if (dtrValue.HasRows)

    {

    //读取数据行值

                    while (dtrValue.Read())

    {

    //读取分页间数据

                        if (p_intStart <= k && k < p_intStart + p_intPageSize)

    {

    dr = dtb.NewRow();

    //读取每列值

                            for (int j = 0; j < intColLength; j++)

    {

    //读取每列的值

                                dr[dtrValue.GetName(j)] = GetValue(j, GetFieldType(j).ToString());

    }

    dtb.Rows.Add(dr);

    }

    k++;

    }

    //删除了当前页所有数据则读上一页数据

                    if (k <= p_intStart)

    {

    while (k <= p_intStart)

    {

    p_intStart = p_intStart - p_intPageSize;

    }

    k = 0;

    dtrValue = ExecuteReader(p_objCmdType, p_strSql, p_CmdParms);

    if (dtrValue.HasRows)

    {

    while (dtrValue.Read())

    {

    //读取分页间数据

                                if (p_intStart <= k && k < p_intStart + p_intPageSize)

    {

    dr = dtb.NewRow();

    //读取每列值

                                    for (int j = 0; j < intColLength; j++)

    {

    //读取每列的值

                                        dr[dtrValue.GetName(j)] = GetValue(j, GetFieldType(j).ToString());

    }

    dtb.Rows.Add(dr);

    }

    k++;

    }

    }

    }

    }

    CloseCn();

    SEHR.BLL.Function.AddSQLLog.WriteLog(p_strSql, dtStart.TimeOfDay.ToString(), DateTime.Now.TimeOfDay.ToString(), Convert.ToString(DateTime.Now - dtStart));

    if (out_intCount == 0)

    {

    out_intCount = k;//获得总行数并且返回到页面

                }

    return dtb;

    }

    #endregion

    #region "ExecuteReader 执行SQL语句"

    /// <summary>

    /// ExecuteReader

    /// </summary>

    /// <param name="p_objCmdType">命令类型 1CommandType.Text SQL语句 2CommandType.StoredProcedure存储过程</param>

    /// <param name="p_strSQL">命令类型 1 SQL语句 2存储过程名称</param>

    /// <param name="p_CmdParms">SqlParameter</param>

    /// <returns>SqlDataReader</returns>

            private SqlDataReader ExecuteReader(CommandType p_objCmdType, string p_strSQL, SqlParameter[] p_CmdParms)

    {

    SqlDataReader dtrRet = null;

    try

    {

    //打开连接

                    OpenCn();

    //命令行连接

                    Cmd.Connection = Con;

    Cmd.CommandText = p_strSQL;

    //是SQL语句还是存储过程

                    Cmd.CommandType = p_objCmdType;

    //循环CmdParms值

                    if (p_CmdParms != null)

    {

    foreach (SqlParameter objParm in p_CmdParms)

    {

    Cmd.Parameters.Add(objParm);

    }

    }

    dtrRet = Cmd.ExecuteReader();

    Cmd.Parameters.Clear();

    return dtrRet;

    }

    catch (Exception e)

    {

    string strErr = string.Empty; //p_CmdParms 参数值

                    if (p_CmdParms != null)

    {

    foreach (SqlParameter objParm in p_CmdParms)

    {

    strErr += objParm.ParameterName + " ='" + objParm.Value + "' ";

    }

    }

    if (Con.State != ConnectionState.Closed && sqlTran == null)

    {

    Cmd.Parameters.Clear();

    CloseCn();

    }

    // 写错误日志

                    SEHR.BLL.Function.AddMsgLog.AddError("SqlBase", e.Message + ""n"r SQL : " + p_strSQL + ""n"r 参数 : " + strErr, e.StackTrace);

    return null;

    }

    finally

    {

    //如果连接打开并且没有事务和SqlDataReader事件 则关闭连接

                    if (Con.State != ConnectionState.Closed && sqlTran == null && dtrRet == null)

    {

    Cmd.Parameters.Clear();

    CloseCn();

    }

    }

    }

    #endregion

     

  • 相关阅读:
    构建maven项目,自定义目录结构方法
    Nginx反向代理实现负载均衡以及session共享
    Spring Boot 2.x引入JS,CSS 失效问题
    WebMvcConfigurerAdapter已过时
    闲谈Tomcat性能优化
    oracle decode函数和 sign函数
    为什么要使用MQ和到底什么时候要使用MQ
    redis持久化的几种方式
    【mySQL】left join、right join和join的区别
    redis缓存在项目中的使用
  • 原文地址:https://www.cnblogs.com/roboot/p/4821250.html
Copyright © 2011-2022 走看看