我最近开始使用C#编程asp.net(使用VS2008),我编写了第一个连接数据库的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本身添加了一个新的数据库元素(Website - &gt; Add New Item)。我在该数据库中添加了一些字段,并且还配置了一个GridView来显示正在运行的数据库。但问题是,当我想将Gridview连接到之前在SQL SM Studio中创建的数据库时,它不起作用 - 在配置它赢得的连接时; t让我们选择数据库文件,说:
您无权打开此文件。联系所有者或管理员以获得许可。
在我看来,原因可能是微不足道的,但我无法理清。
请注意,所有数据库文件都是在光盘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中创建数据库一样吗? / p>
非常感谢您的帮助和建议! asp.net兴奋的初学者: - )
答案 0 :(得分: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已经过时了
答案 1 :(得分:-1)
我认为这会有所帮助
SqlConnection dbConnection = new SqlConnection("Data
Source=.\\SQLEXPRESS;Integrated Security=true; initial
catalog=database name; uid=servername ; password=yourpassword");