标签: sqlconnection

SqlConnection作为静态单例对象

public class db
{
    public static string connectionString =
           WebConfigurationManager.ConnectionStrings["connectString"].ConnectionString;
    public static SqlConnection OpenConnection() 
    {
        SqlConnection connection = new SqlConnection(connectionString);
        connection.Open();
        return connection;
    }
}
Run Code Online (Sandbox Code Playgroud)

我看到这样的代码,它尖叫着错!它适用于ASP.NET(2.0).我明白这是错的.

对于一个你不应该打开SqlConnection并返回它和两个为什么你要进行静态SqlConnection?如果有多个人同时尝试使用它,这不会产生问题吗?

c# singleton static sqlconnection

2
推荐指数
1
解决办法
8537
查看次数

如果执行SqlCommand并超时,则相应的SqlConnection是否已关闭和/或处理?

如果执行SqlCommand并超时,则相应的SqlConnection是否已关闭和/或处理?

sql sqlconnection .net-3.5

2
推荐指数
2
解决办法
460
查看次数

单个sqlconnection中的多个sqltransactions

我有一些要执行的代码,如下所示。但是在第二次迭代中,我不断收到异常“此SqlTransaction已完成;它不再可用”。有人可以帮我指出我在这里做错了吗?谢谢!

    SqlConnection cn = (SqlConnection)SqlConnectionManager.Instance.GetUserConnection(user);
 cn.Open();
 try
 {
    foreach (Master mRecord in masterList)
  {
   if (sqlTransaction == null)
       sqlTransaction = cn.BeginTransaction();
   SqlCommand cm = cn.CreateCommand();
   cm.Transaction = sqlTransaction;
   cm.CommandType = CommandType.StoredProcedure;
   cm.CommandText = "pr_InsertRecords";
       try
   {
    cm.ExecuteNonQuery();
    Debug.WriteLine("Auditor.Write: end sql table value param");
    sqlTransaction.Commit();
    sqlTransaction.Dispose();
   }
   catch (Exception Ex)
   {
    Debug.WriteLine(" Exception message: " + Ex.Message);
    if (Ex.InnerException != null)
    {
     Debug.WriteLine("Inner exception message" + Ex.InnerException.Message);
    }
    sqlTransaction.Rollback();
   }
  }
 }
 finally
 {
        cn.Close();
      }
Run Code Online (Sandbox Code Playgroud)

c# database sqlconnection sqltransaction

2
推荐指数
1
解决办法
7595
查看次数

SqlDataReader vb.net保持连接打开

我正在使用此代码来获取数据:

 Dim connetionString As String
    Dim connection As SqlConnection
    Dim sqlq As String

    sqlq = "select top 1 * from table1 where smth"

    Dim ds As New DataSet
    connetionString = "Data Source=db;Initial Catalog=ic;User ID=id;Password=pass"
    connection = New SqlConnection(connetionString)

    Try
        Using connection
            Dim command As SqlCommand = New SqlCommand(sqlq, connection)
            connection.Open()
            Dim reader As SqlDataReader = command.ExecuteReader()
            If reader.HasRows Then
                Do While reader.Read()
                    x = reader.GetString(5)
                Loop
            End If
            reader.Close()
        End Using
    Catch ex As Exception
    End Try
Run Code Online (Sandbox Code Playgroud)

这种类型的连接(与不同的sqlq [查询])我在diffenrent函数中使用了很多,每次我关闭连接.我想优化它,以便获取数据所需的时间更少.我怎么做?

sql vb.net sqlconnection

2
推荐指数
1
解决办法
7088
查看次数

SQLConnection连接错误"用户服务器/来宾登录失败"

我一直收到连接错误.我知道这些信息是正确的,因为我在最后几分钟内已经多次尝试使用SSMS,所以问题出在C#连接字符串中.根据各种谷歌搜索,语法是正确的,只是它不起作用.

try
{
    // Get the connection information.
    GetSQLConnectInfo(ref sConnect);

    // Formulate the connection string.
    String strConnect = String.Format("Server=myserver;Database=mydb;User Id=myusername;Password=mypassword;Trusted_Connection=yes;connection timeout=30");

    // DATABASE: Create the connection.
    SqlConnection oConnection = new SqlConnection(strConnect);
    oConnection.Open();
    if (ConnectionState.Open != oConnection.State)
        return false;

    return true;
}

catch
{
}
Run Code Online (Sandbox Code Playgroud)

错误返回:用户'myserver\Guest'登录失败.错误代码:-2146232060错误号码:18456

似乎从错误消息判断,Open方法无法识别用户名,因为Open尝试使用来宾帐户,这显然不起作用.

我错过了什么吗?我正在使用SQL Server身份验证.

c# sql-server authentication login sqlconnection

2
推荐指数
1
解决办法
9951
查看次数

确保连接已关闭

我想问一下使用数据库连接和关闭它们的常用方法是什么.

这是我的程序,但我在一个例子中看到,connection.Close()将不会执行.

我应该在整个街区使用try-catch吗?因为某种原因,我看到大多数人都没有.

using (SqlConnection connection = new SqlConnection(ConnectionString))
        {
            using (SqlCommand command = new SqlCommand())
            {
                command.CommandText = "procedure";

                command.Connection = connection;

                command.CommandType = CommandType.StoredProcedure;

                tmpParameter = DBUtils.createInSQLParam("@ImageID", SqlDbType.SmallInt, htmlImageId);
                command.Parameters.Add(tmpParameter);

                command.Connection.Open();

                using (SqlDataReader reader = command.ExecuteReader())
                {
                    htmlImageDetails = GetHtmlImageDetailsFromReader(reader, true, out newId);

                    reader.Close();
                }

                connection.Close();

                return htmlImageDetails;
            }
        }
Run Code Online (Sandbox Code Playgroud)

c# sqlconnection

2
推荐指数
1
解决办法
1015
查看次数

连接字符串在C#windows应用程序中不起作用

由于某些原因,我无法使用我的连接字符串建立数据连接.我正在使用以下代码

var connectionString = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;
SqlCommand cmd = new SqlCommand();
SqlConnection con = new SqlConnection(connectionString);
cmd.Connection = connectionString;

cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = " dbo.SelectAll";

SqlParameter param = new SqlParameter("@tradeDate","201401");

param.Direction = ParameterDirection.Input;
param.DbType = DbType.String;
cmd.Parameters.Add(param);
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,当我将连接属性初始化为我的命令使用时cmd.Connection = connectioString,是抛出异常,如下所示

无法将类型'string'隐式转换为'System.Data.SqlClient.SqlConnection'

c# sql sqlconnection

2
推荐指数
2
解决办法
692
查看次数

连接不会像它应该关闭

我在ASP项目中遇到以下错误:

The connection was not closed. The connection's current state is open
Run Code Online (Sandbox Code Playgroud)

在SqlConnection对象上调用.open()函数时.

我试过这个:

    if (Conn.State != ConnectionState.Closed)
    {
        Log.Message(xxx);
        try
        {
            Conn.Close();
        }
        catch (Exception ex)
        {
            Log.Error(xxxx);
        }
    }
    Conn.Open();
Run Code Online (Sandbox Code Playgroud)

但这仍然会引发错误.Conn对象声明为:

private static readonly SqlConnection Conn = new SqlConnection(xxxx);
Run Code Online (Sandbox Code Playgroud)

知道我应该在哪里寻找解决方案

c# asp.net sqlconnection

2
推荐指数
1
解决办法
80
查看次数

.NET SqlConnection对象如果未关闭会导致内存泄漏吗?

我知道你需要调用.Close()一个SqlConnection对象,以便在完成后将基础SQL连接释放回池中; 但如果你不这样做,即使超出范围,.NET对象是否仍然留在内存中?我问,因为我正在处理一些遇到内存泄漏的代码,我注意到SqlConnection对象没有被关闭或处理(它们被创建,打开,然后只是被允许超出范围).

.net ado.net memory-leaks sqlconnection

2
推荐指数
1
解决办法
2378
查看次数

C#使用一个SqlConnection进行多个查询

如何正确使用一个SqlConnection对象进行多个查询?

SqlConnection connection = new SqlConnection(connString);

static void SqlQuery(SqlConnection conn, string cmdString)
{
    using (conn)
    { 
        if (conn.State != ConnectionState.Open)
        {
            conn.Close();
            conn.Open();
        }
        SqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = cmdString;
        cmd.ExecuteNonQuery();
    }
}
Run Code Online (Sandbox Code Playgroud)

SqlQuery第一次调用后的函数抛出System.InvalidOperationException"ConnectionString属性未初始化"

c# sqlconnection .net-4.6

2
推荐指数
1
解决办法
2743
查看次数