4

我最近开始使用 C#(使用 VS2008)编写 asp.net,并且编写了我的第一个连接到数据库的 Web 应用程序。第一个版本工作正常,但现在一旦我修改它就会出现一些问题。我将给出以下示例来描述这种情况:

1) 工作正常。程序连接到数据库并使用函数DeleteAllRecords()对其执行操作;需要注意的是,我在 SQL Server Management Studio 中创建了要连接的数据库。

按钮单击事件处理程序的代码隐藏页面:

    SqlConnection dbConnection = new SqlConnection("Data Source=.\\SQLEXPRESS;Integrated Security=true");
    try
    {
        dbConnection.Open();
        dbConnection.ChangeDatabase("przemek8");
        SqlCommand myCommand = new SqlCommand("DELETE FROM table8", dbConnection);
        myCommand.ExecuteNonQuery();
    }
    catch (SqlException exception)
    {
        Response.Write("<p>Error code " + exception.Number + ": " + exception.Message + "</p>");
    }
    dbConnection.Close();
} 

2)我第二次没有使用 SQL SM Studio 中制作的数据库,但我从 Visual Studio 本身添加了一个新的数据库元素(网站 -> 添加新项目)。我向该数据库添加了一些字段,并且还配置了一个 GridView 来显示正在运行的数据库。然而,问题是,当我想将 Gridview 连接到之前在 SQL SM Studio 中创建的数据库时,它不起作用 - 配置连接时它不会;让选择数据库文件,说:

您无权打开此文件。联系所有者或管理员以获得许可。

在我看来,原因可能微不足道,但我无法解决。

请注意,所有数据库文件都是在 C 盘上的默认目标位置创建的 SQL SM Studio。

3) 无法将 GridView 连接到 SQL Server 创建的数据库 我继续使用 Visual Studio 本身添加的数据库。它正在与 GridView 一起使用,因此我使用该函数与之交互(删除所有记录)-与第 1 点使用的相同)但现在使用数据库。

  SqlConnection dbConnection = new SqlConnection("Data Source=.\\SQLEXPRESS; AttachDbFilename='D:\\WebSite1\\App_Data\\mydtb.mdf'; Integrated Security=true; User Instance=true");
    try
    {
        dbConnection.Open();
        dbConnection.ChangeDatabase("mydtb");
        SqlCommand myCommand = new SqlCommand("DELETE FROM Table1", dbConnection);
        myCommand.ExecuteNonQuery();
    }
    catch (SqlException exception)
    {
        Response.Write("<p>Error code " + exception.Number + ": " + exception.Message + "</p>");
    }
    dbConnection.Close();

它没有连接到那个,错误消息是:

错误代码 911:数据库“mydtb”不存在。确保输入的名称正确。

我是这个领域的新手,但是这种情况下的数据源(连接到在 Visual Studio 中创建的数据库)是否应该Data Source=.\\SQLEXPRESS;与在 SQL Server Management Studio 中创建数据库时一样?

非常感谢您的任何帮助和建议!asp.net 兴奋的初学者:-)

4

2 回答 2

1

您在连接到服务器上的数据库时遇到的问题是因为

SqlConnection dbConnection = new SqlConnection("Data Source=.\\SQLEXPRESS;Integrated   Security=true");

最好的方法是转到您的 Web.config 文件并找到该块并在其中添加到您的数据库的连接。

例如

<add name="ConnectionString" connectionString="Data Source=YOUR SERVER;Initial Catalog=YOUR DATABASE;User ID=YOUR USER ID;Password=YOUR PASSWORD" />

那么您可以在需要使用它时在整个项目中调用连接字符串。

也关于VS2012。目前使用该 IDE 的公司很少,因此您最好在大多数情况下学习 VS 2010,但我同意 VS2008 现在已经过时了

于 2013-06-07T15:49:07.320 回答
-1

我认为这会有所帮助

SqlConnection dbConnection = new SqlConnection("Data
  Source=.\\SQLEXPRESS;Integrated   Security=true; initial
  catalog=database name; uid=servername ; password=yourpassword");
于 2014-12-24T06:34:58.780 回答