【问题标题】:How to access LocalDB in asp.net mvc project如何在 asp.net mvc 项目中访问 LocalDB
【发布时间】:2018-06-07 11:28:09
【问题描述】:

我想访问 localDB。 我在 sql server 中的连接字符串如下所示

  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-Tv3-20171226095229.mdf;Initial Catalog=aspnet-Tv3-20171226095229;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

而我的 mdf 文件在 app_data 中是这样的


我正在使用以下代码访问数据库,如下所示:

public static DataSet GetDataSetFromStoredProc(string sql, Dictionary<string, dynamic> dictionary, string _ConnectionString)
        {
            try
            {
                using (SqlConnection connection2 = new SqlConnection(_ConnectionString))
                {
                    SqlCommand cmd = new SqlCommand(sql, connection2);

                    cmd.CommandType = CommandType.StoredProcedure;
                    foreach (KeyValuePair<string, dynamic> pair in dictionary)
                    {
                        cmd.Parameters.AddWithValue(pair.Key, pair.Value);
                    }
                    SqlDataAdapter adp = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    adp.Fill(ds);
                    return ds;
                }
            }
            catch (SqlException err)
            {
                // Replace the error with something less specific.
                // You could also log the error now.
                throw new ApplicationException("Data error. " + err.Message.ToString());
            }
        }

public static DataTable GetDataTableFromStoredProc(string sql, Dictionary<string, dynamic> dictionary, string _ConnectionString)
            {
                DataSet ds = GetDataSetFromStoredProc(sql, dictionary,_ConnectionString);

                if (ds.Tables.Count > 0)
                    return ds.Tables[0];
                return null;
            }

现在我正在执行如下函数:

GetDataTableFromStoredProc("down_data", dictionary, System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)

但我遇到了如下异常:

数据错误。发生与网络相关或特定于实例的错误 在建立与 SQL Server 的连接时。服务器没有 找到或无法访问。验证实例名称是否正确 并且 SQL Server 配置为允许远程连接。 (提供者:SQL 网络接口,错误:50 - 本地数据库运行时 错误发生。无法创建自动实例。见窗 错误详细信息的应用程序事件日志。 )

如何解决这个问题??

【问题讨论】:

  • .mdf文件是否添加到项目中?
  • @RomanSvitukha 是的
  • 何时/何地你在运行这个?在 VS/Debug 或一些“生产”环境中。请参阅 SQL Server 2016 Express LocalDB reference,尤其是 permissionsuser instance 主题。

标签: c# sql-server asp.net-mvc ado.net localdb


【解决方案1】:

尝试从连接字符串中删除“Initial Catalog=aspnet-Tv3-20171226095229;”。

【讨论】:

    【解决方案2】:

    尝试用户 Integrated Security=SSPI

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多