标签: sqlconnection

客户端应用程序中打开的 SqlConnections 与 SQL Server 中的进程之间有什么关系?

我只是尝试对 SQL Server 数据库中的表进行简单的架构更改(通过使用 SMSS 中的设计工具)。每当我尝试保存更改时,它总是超时。我想知道这是否是由于现有的连接“锁定”了表。

作为一个实验,我决定终止连接。我查询 master..sysprocesses 以获取该数据库的当前 spid,并一一杀死它们,直到我能够保存我的架构更改。(不是很科学,但我远不是 SQL Server 专家)。果然,当我杀死所有 spid(除了我使用 SMSS 的那个)后,我能够保存架构更改。

我想问一下ADO.NET SqlConnections和spids之间的关系。例如,如果客户端应用程序在 SqlConnection 对象上调用 Open(),我是否应该在 master..sysprocesses 中看到另一个 spid?如果我在该 SqlConnection 上调用 Close() 会怎么样?spid 应该消失吗?

我确信事情没有那么简单,因为我知道存在连接池的概念,但是有人可以阐明这种关系是如何运作的吗?

谢谢

大卫

ado.net connection-pooling sqlconnection spid

4
推荐指数
1
解决办法
684
查看次数

为什么我无法将 ServiceStack Ormlite 连接转换为 SqlConnection?

我正在尝试使用SqlBulkCopyServiceStack Ormlite编写了以下扩展方法:

public static void BulkInsertSqlServer<T>(this IDbConnection dbConn, string targetTable, IEnumerable<T> data, params string[] columns)
{
  Ensure.NotNull(dbConn);
  Ensure.That(dbConn.State == ConnectionState.Open);
  Ensure.NotNullOrEmptyOrWhiteSpace(targetTable);
  Ensure.NotNull(data);
  Ensure.NotNullOrEmpty(columns);

  var sqlConnection = dbConn as SqlConnection;

  using (var bcp = new SqlBulkCopy(sqlConnection))
  using (var reader = ObjectReader.Create(data, columns))
  {
      bcp.BatchSize = data.Count();
      bcp.DestinationTableName = targetTable;
      bcp.WriteToServer(reader);
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用的:

_connFactory = new OrmLiteConnectionFactory(connStr, SqlServerOrmLiteDialectProvider.Instance);

using (var db = _connFactory.Open())
using (var tran = db.BeginTransaction())
{
    db.BulkInsertSqlServer("User", users, "Name", "Age");

    var allRoles = new …
Run Code Online (Sandbox Code Playgroud)

.net c# sqlconnection ormlite-servicestack

4
推荐指数
1
解决办法
634
查看次数

使用“using”语句时是否需要关闭连接

目前我的代码构造如下。

using (var sqlCon = new SqlConnection(Context.ReturnDatabaseConnection()))
        {
            sqlCon.Open();

            try
            {
               //Code here

            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            finally
            {
                sqlCon.Close();
            }
        }
Run Code Online (Sandbox Code Playgroud)

理想情况下,根据我的理解,使用“使用”语句将处理关闭的连接,但由于其他人所说的话,我对此表示怀疑。

谢谢

c# sqlconnection

4
推荐指数
1
解决办法
2893
查看次数

如果在“using”语句中使用 try/catch ,是否会处理 Disposable 资源?

我正在与SqlConnection和一起工作SqlCommand

例如,如果有任何SqlException.

我正在使用using子句并将其嵌入try/catch block其中。这是代码:

public static void LogError(string error, string message)
{
    using (SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["connStringWeb"]))
    using (SqlCommand cmd = new SqlCommand("INSERT INTO errorLogTable (errorTime, errorType, error) VALUES(@errorTime, @errorText, @errorMsg)"))
    {
        cmd.CommandTimeout = 300;
        cmd.Connection = conn;
        cmd.Prepare();
        cmd.Parameters.AddWithValue("@errorTime", DateTime.Now);
        cmd.Parameters.AddWithValue("@errorText", error);
        cmd.Parameters.AddWithValue("@errorMsg", message);

        try
        {
           conn.Open();
           int i = cmd.ExecuteNonQuery();
        }
        catch { }
        }
   }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果出现异常,我的SqlConnection和是否会SqlCommand被处理,这是处理它的好方法还是我应该简单地使用使用try/catch/finally块的旧时尚方法?

.net c# idisposable sqlconnection try-catch

4
推荐指数
1
解决办法
1734
查看次数

将 IConfiguration 注入 .NET Core 3.0 中的 Program.cs(控制台应用程序)

我正在尝试将 IConfiguration(Microsoft.Extensions.Configuration 包)注入 Program.cs 中,但不知道这是否可行,因此如果可能的话,显然不知道该怎么做。

我已经在其他项目的 Startup 类中完成了它,但在那里我只是做了一个简单的依赖注入,我没有发现在控制台应用程序中以相同的方式完成。

原因是,我需要访问 appsettings 中的一些关键值,以使用 SqlConnection 类 (System.Data.SqlClient) 访问我的数据库。

通常,我只是在 Startup.cs 中像这样添加它:

....
services.AddScoped(mysql => new SqlConnection($"and here goes my variables from appsettings..");
....
Run Code Online (Sandbox Code Playgroud)

我需要使用选项模式还是有更简单的方法?

c# configuration dependency-injection sqlconnection appsettings

4
推荐指数
1
解决办法
1347
查看次数

是否可以在SqlConnection中使用EF4 EntityConnection?

例如:

SqlConnection connection = new SqlConnection(efContext.Connection...?)
connection.Open();

etc..
Run Code Online (Sandbox Code Playgroud)

c# sqlconnection entity-framework-4

3
推荐指数
1
解决办法
1578
查看次数

这是一个防Sql注入的Asp.net代码吗?

问题:我有一个带有文本值的表单,以及一个必须根据文本值的值返回字符串查询的函数.

解决方案:我使用参数创建了一个SQLCommand查询,然后我将SQLCommand.CommandText放到一个字符串中,然后将其返回(将要处理查询的业务逻辑)

主要问题:它是sql注入证明吗?

代码示例:

sQuery = "select * from xy where x like '%@txtNameParameter%'";

SqlCommand cmd = new SqlCommand(sQuery);

cmd.Parameters.Add("@txtNameParameter", SqlDbType.VarChar);
cmd.Parameters["@txtNameParameter"].Value = txtName.Text;

string query = cmd.CommandText;
return query;
Run Code Online (Sandbox Code Playgroud)

如果主要问题是好的子问题:我是否应该将参数放入radiobutton和dropdownmenu的值或者它们是否注入防护?

asp.net parameters sql-injection sqlcommand sqlconnection

3
推荐指数
1
解决办法
372
查看次数

使.NET SqlConnection不使用Windows会话凭据

出于某种原因,我的.NET(C#)SqlConnection使用我的Windows会话凭证而不是指定的凭据.有没有办法忽略我的会话凭据并使用我指定的凭据?

SqlConnection myConnection = new SqlConnection("user id=user;" +
                                   "password=pass;server=10.0.10.99;" +
                                   "Trusted_Connection=yes;" +
                                   "database=databasename; " +
                                   "connection timeout=5");
myConnection.Open();
Run Code Online (Sandbox Code Playgroud)

.net c# sqlconnection

3
推荐指数
1
解决办法
1474
查看次数

无法关闭SqlConnection

我知道这是一个老问题.数以千计的谷歌声明说Connection will be closed in Dispose().但是,谁真的验证了?

我发现,SqlConnection没有办法关闭.我有一个简单的程序(左边有行号).

  class Program
  {
    static void Main(string[] args)
1   {
2        var connectionString = "Data Source=localhost;Initial Catalog=master;Integrated Security=SSPI;";
3        using (var conn = new SqlConnection(connectionString))
5        {
6            using (var cmd = new SqlCommand("create table #mytable(col1 int);", conn))
7            {
8                conn.Open();
9                cmd.ExecuteNonQuery();
10           }
11           conn.Close();
12           conn.Dispose();
13       }
14       GC.Collect();
15   }
  }
Run Code Online (Sandbox Code Playgroud)

我有一个用于检查活动连接的T-SQL语句

exec sp_who2
Run Code Online (Sandbox Code Playgroud)

一步一步地跟调试器一起走了,同时,我检查了活动连接sp_who2.

每个人都期望连接应该在第11行关闭.对吗?但是,连接是在sleep第11行之后. …

c# sql-server dispose sqlconnection

3
推荐指数
1
解决办法
1082
查看次数

DB连接是否被SqlConnection类的析构函数关闭?

如果我丢失了对包含与数据库的开放连接的对象的引用,那么当GC清理我的对象时(即通过析构函数SqlConnection class),连接是否已关闭?

或者是否导致连接泄漏?

c# ado.net sqlconnection

3
推荐指数
1
解决办法
1075
查看次数