11

さて、これが最初の方法です

public static string srConnectionString = "server=localhost;database=myDB; "+
" uid=sa;pwd=myPW;";

そして、これが2番目の方法です

public static string srConnectionString = "server=localhost;database=myDB; "+
" integrated security=SSPI;persist security info=False; Trusted_Connection=Yes;";

これら 2 つの接続文字列の間にパフォーマンスの違いやその他の違いはありますか?

ここで私のSQL接続クラスに何か提案はありますか?

using System;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data;

public static class DbConnection

{
    public static string srConnectionString = "server=localhost; database=myDB; uid=sa; pwd=myPW;";

    public static DataSet db_Select_Query(string strQuery)
    {
        DataSet dSet = new DataSet();
        if (strQuery.Length < 5)
            return dSet;
        try
        {
            using (SqlConnection connection = new SqlConnection(srConnectionString))
            {
                connection.Open();
                using (SqlDataAdapter DA = new SqlDataAdapter(strQuery, connection))
                {
                    DA.Fill(dSet);
                }
            }
            return dSet;
        }
        catch
        {
            using (SqlConnection connection = new SqlConnection(srConnectionString))
            {
                if (srConnectionString.IndexOf("select Id from tblAspErrors") != -1)
                {
                    connection.Open();
                    strQuery = strQuery.Replace("'", "''");

                    using (SqlCommand command = new SqlCommand("insert into tblSqlErrors values ('" + strQuery + "')", connection))
                    {
                        command.ExecuteNonQuery();
                    }
                }
            }
            return dSet;
        }
    }

    public static void db_Update_Delete_Query(string strQuery)
    {
        if (strQuery.Length < 5)
            return;
        try
        {
            using (SqlConnection connection = new SqlConnection(srConnectionString))
            {
                connection.Open();
                using (SqlCommand command = new SqlCommand(strQuery, connection))
                {
                    command.ExecuteNonQuery();
                }
            }
        }
        catch
        {
            strQuery = strQuery.Replace("'", "''");
            using (SqlConnection connection = new SqlConnection(srConnectionString))
            {
                connection.Open();
                using (SqlCommand command = new SqlCommand("insert into tblSqlErrors values ('" + strQuery + "')", connection))
                {
                    command.ExecuteNonQuery();
                }
            }
    }
}

}

4

1 に答える 1

5

パフォーマンスの違いは無視できるほど小さいものです。認証チェックは、

  1. ...ログイン時にのみ実行されます。クエリごとに接続が再チェックされることはありません。ただし、接続プーリングでは、ほぼすべてのクエリで、接続が何度も認証およびリセットされます。
  2. ...すべてのファイル アクセスや、ドメインに関連するその他のアクティビティが Active Directory に対してチェックされるのと同じです。

参考までに、これら 2 つの設定は同じです (どちらか一方を使用してください)。

統合セキュリティ=SSPI
Trusted_Connection=はい

于 2012-12-19T19:55:54.340 に答える