Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据从表中获取到ASP.NET web应用程序_C#_Asp.net_Database Connection_Connection String - Fatal编程技术网

C# 将数据从表中获取到ASP.NET web应用程序

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

我正在使用Visual Studio 2010构建一个ASP.NET web应用程序,我正在从数据库中的信息动态填充(部分)站点地图。现在我的App_数据文件夹中有一个虚拟表,名为DrugTest.mdf。该表名为DrugTest1,它只有一个字段DrugName。我碰壁的地方实际上是从表中获取数据。我感到困惑的一部分是连接字符串。我已经看过很多关于连接字符串的不同信息,最明显的是,我有点困惑于如何将这些信息实际应用到这个项目中

编辑:我正在使用SQLServer2008RC

例如:
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文件夹中查找它。我觉得自己像个白痴,但非常感谢,它起作用了。