C# 将数据从表中获取到ASP.NET web应用程序
我正在使用Visual Studio 2010构建一个ASP.NET web应用程序,我正在从数据库中的信息动态填充(部分)站点地图。现在我的App_数据文件夹中有一个虚拟表,名为DrugTest.mdf。该表名为DrugTest1,它只有一个字段DrugName。我碰壁的地方实际上是从表中获取数据。我感到困惑的一部分是连接字符串。我已经看过很多关于连接字符串的不同信息,最明显的是,我有点困惑于如何将这些信息实际应用到这个项目中 编辑:我正在使用SQLServer2008RC 例如:C# 将数据从表中获取到ASP.NET web应用程序,c#,asp.net,database-connection,connection-string,C#,Asp.net,Database Connection,Connection String,我正在使用Visual Studio 2010构建一个ASP.NET web应用程序,我正在从数据库中的信息动态填充(部分)站点地图。现在我的App_数据文件夹中有一个虚拟表,名为DrugTest.mdf。该表名为DrugTest1,它只有一个字段DrugName。我碰壁的地方实际上是从表中获取数据。我感到困惑的一部分是连接字符串。我已经看过很多关于连接字符串的不同信息,最明显的是,我有点困惑于如何将这些信息实际应用到这个项目中 编辑:我正在使用SQLServer2008RC 例如:dataso
datasource=myServerAddress;初始目录=myDataBase;用户Id=我的用户名;密码=我的密码代码>
密码和用户Id都是不言自明的,但据我所知,我没有得到其中任何一个,我只是在App_数据文件夹中添加了一个表,并用虚拟数据填充了它。ServerAddress有点混乱,因为这些信息并不是真正存储在服务器上,而是存储在本地。老实说,我不确定最初的目录是什么意思。
下面是填充子树的代码。您会注意到连接字符串留空
string connString = ""; // get the connection string
string commandString = "SELECT drugName FROM DrugTable1";
SqlConnection connection = new SqlConnection(connString); // connect to db
SqlCommand command = new SqlCommand(commandString, connection); // set up the command
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataSet drugs = new DataSet();
adapter.Fill(drugs);
foreach (DataRow row in drugs.Tables[0].Rows)
{
string drugName = row["Name"] + "";
SiteMapNode node = new SiteMapNode(this, drugName,
"~/PlaceHolderUrl?path=" + drugName,
drugName);
AddNode(node, root);
}
此外,我一直怀疑我的做法不对。我认为一旦数据库启动并运行,这将是正确的实现,但现在我只想让它工作起来,这样就可以开始了——只需插入正确的连接字符串和表/字段名
最后,我的问题是:如何连接到这个本地表?我的连接字符串应该是什么格式?我注意到有很多。是否有更好的方法来执行此操作/我做错了吗?尝试将连接字符串的初始目录部分替换为AttachDbFilename=| DataDirectory | DrugTest.mdf
此外,如果您使用的是SQL Server Express,则可能需要在数据源中包含该实例,因此可以尝试Data Source=mySeverAddress\SQLExpress
,其中SQLExpress是实例名称
顺便说一句,在该站点上,如果您向下滚动到“连接到本地SQL Server Express实例时附加位于数据目录中的数据库文件”部分,您可以在SQL Server 2008页面中找到此信息。获取正确连接字符串的另一种方法在ServerExplorer窗口中检查此信息
- 在菜单上单击查看->服务器资源管理器
- 在服务器资源管理器窗口中,找到DrugTest.mdf
- 在文件上单击鼠标右键,然后选择“属性”
- 您可以在属性中看到正确的连接字符串
- 复制连接字符串并使用
注意:文件位置是硬编码的。您以后可能需要使用| DataDirectory |
,因此我应该将用户名和密码保留为空?在建立与SQL Server的连接时,出现了与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:SQL网络接口,错误:26-定位指定的服务器/实例时出错)由adapter.Fill(Druges)
引发听起来可能您使用的是SQL Server的完整版本,而不是SQLExpress,所以请将数据源更改回仅myServerAddress。我完全错过了ConnectionString上的条目。感谢您指出这一点。按连接字符串加载数据库文件是一件痛苦的事情。我的建议是下载并安装SQLExpress edition并使用它。它更接近您的预期目标环境,而且不需要任何成本。我已经寻找了三天了。我在这个App\u Data\DrugTest.mdf文件夹中查找它。我觉得自己像个白痴,但非常感谢,它起作用了。