当前位置: 首页 > 编程语言 > C#

C#连接数据库和列出数据库共享

时间:2023-04-11 10:39:05 C#

C#连接数据库和列出数据库不要先指定数据库。sqlConnection1=newSqlConnection("Server="+sqlServer+";Database="+database+";UserID="+userName+";Password="+password+";Trusted_Connection=False;");基本上我想要的想法是让最终用户连接到sqlserver,然后在下拉列表中填充他们可以连接和查询的数据库列表。主意?您可以使用SqlConnection.GetSchema:使用(varcon=newSqlConnection(“数据源=您的服务器;集成安全性=True;”)){con.Open();DataTable数据库=con.GetSchema("数据库");foreach(DataRowdatabaseindatabases.Rows){StringdatabaseName=database.Field("database_name");shortdbID=database.Field("dbid");DateTimecreationDate=database.Field("create_date");SQLServer架构集合(ADO.NET)要确定受支持架构集合的列表,请调用不带参数的GetSchema方法,或使用架构集合名称“MetaDataCollections”。这将返回一个DataTable,其中包含受支持架构集合的列表、它们支持的每个架构的有限数量以及它们使用的标识符部分的数量。您可以编写一个存储过程来返回该服务器上的数据库列表。SELECTnameFROMmaster.sys.databasesorEXECsp_databases这应该得到数据库名称:varconnectionString=string.Format("DataSource=localhost;UserID={0};Password={1};",userName,password);DataTable数据库=null;使用(varsqlConnection=newSqlConnection(connectionString)){sqlConnection.Open();数据库=sqlConnection.GetSchema("数据库");sqlConnection.Close();}if(databases!=null){foreach(DataRowrowindatabases.Rows){foreach(variteminrow.ItemArray){Console.Write("{0}",item);}控制台.WriteLine();}}最后排除所有打印。将所有内容都放在控制台应用程序中以查看其运行情况。表名位于row.ItemArray索引0中。您可以使用SMO-SQLServer管理对象。以下是代码项目中的两个示例代码:使用SMO的SQLServer身份验证使用SMO的数据库最新的数据库列表将在数据库中。为什么不连接到作为默认数据库的tempdb(因为你必须连接到某些东西)开始,然后从master.sys.databases查询。select[name]frommaster.sys.databases然后,您可以使用所需的任何数据库更新连接字符串,或者使用ChangeDatabase()方法简单地更改数据库。例如connection.ChangeDatabase(selectedDB);您也可以连接到master,但我喜欢在tempdb中保留默认连接,因为有时人们会忘记在创建对象之前更改数据库。我宁愿垃圾进入tempdb而不是master,因为tempdb将在SQL重新启动时重新创建。可以试试上面的C#学习教程:C#连接数据库,列出数据库共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——select*frommaster.sys.databases本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: