gpt4 book ai didi

c# - 进程 sqlservr.exe 在 C# 中的 Connection.Close() 之后继续运行

转载 作者:行者123 更新时间:2023-12-05 01:21:13 25 4
gpt4 key购买 nike

我创建了一个到 SQL 数据库的连接,但是当我关闭它时,进程 sqlservr.exe 即使在关闭应用程序后仍继续运行。我也尝试过使用 Dispose,但遇到了同样的问题。 sqlservr.exe 是为了继续运行(不是在启动应用程序之前)?有什么办法可以杀死它吗?

namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
string conexao = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=C:\\Users\\SMITH\\Documents\\C#\\WindowsFormsApplication3\\WindowsFormsApplication3\\Database1.mdf;Integrated Security=True";
SqlConnection conn = new SqlConnection(conexao);
SqlCommand comando = new SqlCommand("SELECT COUNT(*) FROM Usuarios WHERE NomeUser = @user and SenhaUser = @senha", conn);

comando.Parameters.Add("@user", SqlDbType.VarChar).Value = textBox1.Text;
comando.Parameters.Add("@senha", SqlDbType.VarChar).Value = textBox2.Text;


conn.Open();
int i = (int)comando.ExecuteScalar();

string a = i.ToString();

textBox3.Text = a;

if(i>0){
MessageBox.Show("Existe");
}else{
MessageBox.Show("Nem existe");

conn.Dispose();

}
}
}

最佳答案

您可能认为自己正在做的事情与您真正在做的事情不同。

您希望通过嵌入式 SQL 服务器在本地访问本地数据库。不是这种情况。实际上,您只是在启动完整的 MS SQL Server 服务 (sqlservr.exe),它根本不依赖于您的应用程序——除了由您的进程启动之外,它与您将其配置为在Windows等的启动

这不一定是坏事,但如果您希望您的应用程序与嵌入式服务器一起工作,您可能会遇到问题。即,SQL 服务器是在计算机上配置的,而不是通过您的应用程序配置的,它必须(单独)安装,如果有另一台服务器正在运行,您将附加到该服务器上 - 您不一定具有权限等.

如果您仅将其用于内部工具,请不要费心更改任何内容,运行 sql server 进程就可以了,您可以通过服务将其关闭。如果这是分布式应用程序的一部分,请考虑使用不同的 SQL 服务器,例如 SQL Server Anywhere (SQL Server CE),或者甚至可能是完全不同的东西,例如 MS Access(在每台 Windows PC 上免费提供,而不仅仅是 Office ) 或 Firebird 。

关于c# - 进程 sqlservr.exe 在 C# 中的 Connection.Close() 之后继续运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21013965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com