【问题标题】:SQL Server Database Connection C# ASP.NETSQL Server 数据库连接 C# ASP.NET
【发布时间】:2018-08-04 17:41:52
【问题描述】:

要初始化连接字符串,它需要是一个静态字符串。为什么会这样?

using System.Data.SqlClient;

namespace CDemoLib
{
    public class Connecting
    {
        static string conString = @"connection string here";

另外,当我尝试使用conn.Open()am 打开连接时,出现错误提示

名称 conn.Open() 在当前上下文中不存在

为什么会出现这个错误?

using System.Data.SqlClient;

namespace CDemoLib
{
    public class Connecting
    {
         static string conString = @"connection string here";

    SqlConnection conn = new SqlConnection(conString);
    conn.Open();

【问题讨论】:

  • 应该在方法里面!
  • @S.Akbari,我这样做了,我想将它调用到不同的命名空间和类,以便打开与数据库的连接。但是,在创建新对象后,当我尝试调用打开 sql 连接的方法时,再次看到“当前上下文中不存在名称 conn.Open()”错误消息
  • 在上面的代码中,您在 class 的主体内调用 conn.Open();。这在语法上是错误的,你会得到上面提到的 compile 时间错误。您需要在 method 中调用它。
  • @Igor 我这样做了,我想将它调用到不同的命名空间和类,以便打开与数据库的连接。但是,在创建新对象后,当我尝试调用打开 sql 连接的方法时,再次看到“当前上下文中不存在名称 conn.Open()”错误
  • 不,你没有。查看上面您在您的问题中发布的代码。没有办法。

标签: c# asp.net sql-server visual-studio


【解决方案1】:

我已经回答了这个问题,但我会为你重播。 (Connection String Is not Working Object instance reference is null)

将连接字符串放在 web.config 中,如下例所示:

<add name="MovieDB"
     connectionString="Data Source=LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet- MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf"     
     providerName="System.Data.SqlClient"/>

在您的代码中阅读它:

System.Configuration.Configuration rootWebConfig =System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/MyWebSiteRoot");
    System.Configuration.ConnectionStringSettings connString;
    if (rootWebConfig.ConnectionStrings.ConnectionStrings.Count > 0)
    {
        connString =
            rootWebConfig.ConnectionStrings.ConnectionStrings["MovieDB"];
        if (connString != null)
            Console.WriteLine("MovieDB connection string = \"{0}\"",
                connString.ConnectionString);
        else
            Console.WriteLine("No MovieDB connection string");
    }

您的 web.config 标签“名称”中的名称

<add name="MovieDB".....

必须与您的 c# 代码中的相同:

connString = rootWebConfig.ConnectionStrings.ConnectionStrings["MovieDB"]

来自:https://msdn.microsoft.com/en-us/library/ms178411.aspx

这里有一个打开方法:

private static void OpenSqlConnection(string connString)
{
    using (SqlConnection connection = new SqlConnection(connString))
    {
        connection.Open();
        Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
        Console.WriteLine("State: {0}", connection.State);
    }
}

来自:https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.open(v=vs.110).aspx

不要忘记在您的 web.config 中保护您的连接字符串。请阅读:https://msdn.microsoft.com/en-us/library/ms178372.aspx

【讨论】:

  • 将连接字符串放在 web.config 中,如下例所示:在哪个标签,sytstem.web,system.webServer 或 system.codedom 中?\
  • 另外,我尝试将它放在 system.web -> httpModules 下,并且收到错误不允许连接字符串属性。 providerName 相同
  • 标签内寻找 标签,如果你没有看到它,只需添加它。请让我知道你完成它! docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/…
  • 我添加了 connectionStrings,但是 System.Configuration.Configuration 不存在
  • 所以试试这个:SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);命名空间:使用 System.Web.Configuration;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-27
  • 1970-01-01
  • 2018-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多