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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM