Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在SQL Server Express上使用数据适配器时处理异常_C#_Asp.net_Sql Server Express - Fatal编程技术网

C# 在SQL Server Express上使用数据适配器时处理异常

C# 在SQL Server Express上使用数据适配器时处理异常,c#,asp.net,sql-server-express,C#,Asp.net,Sql Server Express,我收到了这个错误消息 无法打开登录请求的数据库“stock”。登录失败。 用户“用户pc\computer”登录失败 我写的代码: protected void btnSubmit_Click(object sender, EventArgs e) { using (SqlConnection con = new SqlConnection("Data Source=user-pc\\SQLEXPRESS;Initial Catalog=stock; Integrated Securit

我收到了这个错误消息

无法打开登录请求的数据库“stock”。登录失败。 用户“用户pc\computer”登录失败

我写的代码:

protected void btnSubmit_Click(object sender, EventArgs e)
{
    using (SqlConnection con = new SqlConnection("Data Source=user-pc\\SQLEXPRESS;Initial Catalog=stock; Integrated Security=True;User Instance=True"))
    {
        using(SqlCommand cmd=new SqlCommand("Select username,password from userprofile where username=@username",con))
        {
            cmd.Parameters.AddWithValue("@username", txtUserName.Text);

            DataTable dt = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dt);
            string userid = dt.Rows[0]["username"].ToString();

它在
da.fill(dt)
上显示错误,因为您说可以通过服务器管理进行连接,并且您标记了问题
asp.net
,我猜问题在于在连接字符串中使用
integratedsecurity=True

您正在开发和启动的应用程序可能使用了不同的凭据,因此无法登录到数据库

以下是一些建议:

  • 请尝试Visual Studio中可用的服务器浏览器,看看是否可以连接到数据库。如果可以,请使用服务器浏览器使用的连接字符串(厌倦集成安全性,如我前面提到的!)
  • 尝试打开SQL浏览器Windows服务
  • 检查是否启用了SQL命名管道(默认情况下应该启用,但只是为了确保)
  • 创建一个控制台应用程序并复制您的代码-控制台应用程序将使用您的凭据,因此即使是集成的安全性也应该可以工作

可能是一整排的东西。您能否作为代码之外的用户连接到该计算机上的该实例。以SQLServerManagementStudio为例?如果是,你能看到数据库吗?@TonyHopkinson是的,我可以通过SQLServerManagementStudio 2008连接-R2@user1700961当您连接到SSMS时,您连接到的是
用户pc\SQLEXPRESS
正确吗?不是我说的。与运行应用程序的同一windows用户在该计算机上访问该实例。这可能是对数据库的权限、对实例的连接以及计算机。即使在某些情况下,也会出现DNS问题。一般来说,这是一个doh时刻,但你必须停止做出“这应该行得通”的假设,并找出从哪里做了什么。