C# 如何判断与sql数据库是不是能够正常连接,再用open打开数据库?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 如何判断与sql数据库是不是能够正常连接,再用open打开数据库?相关的知识,希望对你有一定的参考价值。

Open不抛异常,且Status是Open,就是能正常打开追问

SqlConnnection conn = new SqlConnection(数据库连接字符串);
if( 判断)

conn.Open();

用什么语句可以判断sql是不是连接上呢 ??先判断后打开。

追答

try
using(var con = new SqlConnection())
con.Open();
return con.Status == Open;

catch
return false;

追问

什么意思,看不懂,明白点好嘛?判断语句如何写就可以了。

参考技术A SqlConnection conntection=new SqlConnection(ConfigurationManager.ConnectionString[''conString'].ToString());
string sqlString = "select * from orders order by id desc";
SqlCommad command = new SqlCommand("sqlString",connection);
DataSet dataSet = new DataSet();
SqlDataAdapeter adapter = new SqlDataAdapter(sqlString);
adapter.Fill(dataSet);
// 以上不是测试过的语句, 只想通过这些让你知道,应该怎么 OPEN, 这些语句只是流程示意
参考技术B 能open不就是正常链接了吗

C# 如何判断 DVD 驱动器托盘是不是打开?

【中文标题】C# 如何判断 DVD 驱动器托盘是不是打开?【英文标题】:C# How to tell if DVD drive tray is open?C# 如何判断 DVD 驱动器托盘是否打开? 【发布时间】:2011-09-14 13:34:27 【问题描述】:

我有一个用 C# 编写的 DVD 读取和刻录应用程序。我希望能够检测空驱动器(无磁盘)和打开驱动器之间的区别。

编辑:在谷歌搜索之后,我认为更好的问题描述是“我想访问驱动器托盘状态 - 打开或关闭

我可以使用

ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk WHERE DriveType= 5")

查找系统中的所有 dvd 驱动器,属性告诉我驱动器中是否有磁盘。 Access 属性告诉我是否有空白磁盘。

Access 在驱动器打开以及驱动器关闭并为空时为空。当驱动器打开或关闭时,我看不到任何其他属性发生变化。

有谁知道区分开放式驱动器和封闭式空驱动器的方法?

我使用的是 Win7,但理想情况下该解决方案也适用于 XP 和 Vista。

【问题讨论】:

另见***.com/questions/3969435/check-cd-rom-tray-status @Ian Ringrose:为什么?这个问题没有答案。 我不能 100% 确定你是否能做到。例如,它应该为驱动器中的插槽返回什么? 在这种情况下我可以忍受失败,迈克尔。驱动器必须知道它是打开还是关闭。并且您可以使用 c# 打开和关闭驱动器 - 因此必须可以访问托盘状态。 【参考方案1】:

IOCTL_DISK_GET_LENGTH_INFO 可能对您有用。

【讨论】:

感谢您的回复。我会尝试,一旦我弄清楚如何在 c# 中。但是从阅读中听起来这个参数会告诉我驱动器的大小 - 我不明白它如何告诉我 DVD 驱动器是打开还是空的? 不确定 Stijn 的解决方案是否最好,但阅读文档可以处理错误情况:如果操作失败或挂起,DeviceIoControl 返回零。要获取扩展的错误信息,请调用 GetLastError。 @Sugrue 我现在无法尝试,但我假设空驱动器(0 或 null)和打开驱动器(700MB 或不同值)的大小会不同。 【参考方案2】:

MediaLoaded 属性 (Win32_CDROMDrive) 将告诉您是否已加载光盘。我有点困惑你在找什么:

    磁盘托盘打开 磁盘托盘已关闭 - 没有介质 磁盘托盘已关闭 - 有媒体

MediaLoaded 属性将在情况 2 (False) 和 3 (True) 中有所帮助

【讨论】:

BTW MediaLoaded 在 Win32_CDROMDrive 对象上可用 我想区分 1 和 2。就像我想知道驱动器是打开的还是驱动器是关闭的并且是空的。 TargetInstance 属性可以使用。一旦光盘被弹出,它将为空。如果加载了光盘,则它不会为空 嗨 Lokeshwer。如果没有磁盘且驱动器关闭,TargetInstance 会有什么值? 我理解这个问题。所以我不确定我们是否可以直接使用 WMI 对象进行推断

以上是关于C# 如何判断与sql数据库是不是能够正常连接,再用open打开数据库?的主要内容,如果未能解决你的问题,请参考以下文章

C#怎么判断数据库是不是连接成功?

在C#里连接SQL 2008 报错:已成功与服务器建立连接 但登录前握手期间发生错误 网络名不可再用

有没有一种安全的方法来判断 JDBC 连接是不是仍然正常?

visual studio 2008写的c#如何连接虚拟机的数据库 ,是页面正常显示??

C#与SQL Server建立连接出错

c#如何将数据库连接封装成dll