我最近开始使用VS2008编写C#的asp.net程序,并编写了我的第一个连接数据库的web应用程序。第一个版本运行良好,但是当我对其进行修改后就出现了一些问题。以下是描述情况的示例:
1)正常工作。程序连接到数据库并使用函数
按钮单击事件处理程序的代码如下:
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) 由于无法连接到由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兴奋的初学者:-)
using
语句。请参阅此链接:http://www.codeproject.com/Articles/6564/Understanding-the-using-statement-in-C - liebs19