如何验证OdbcConnection是否只读?

时间:2014-03-13 10:16:37

标签: c# database

我有一个开放的OdbcConnection,我试图使用OdbcCommand写入数据库,我想在插入数据之前验证数据库是否为只读。

我可以使用try和catch,但我希望有更好的解决方案。

提前致谢。

OdbcConnection con = new OdbcConnection("DSN=SERVER1;UID=User;PWD=User");
try
{    
    con.Open();
    OdbcCommand cmd = con.CreateCommand();
    cmd.CommandText = "INSERT INTO table1 (NAME, AGE) VALUES ('Test', 100)";
    cmd.ExecuteNonQuery();
}
catch(Exception e)
{
    Console.WriteLine(e.Message);
}
finally
{
    con.Close()
}

这是数据库为只读时的输出:

  

错误[HY000] SOLID数据库错误10013:事务是只读的

1 个答案:

答案 0 :(得分:0)

对于sql server,您可以使用: 信息存储在sys.databases中。

SELECT name, is_read_only 
FROM sys.databases 
WHERE name = 'MyDBNAme'
GO

- 当数据库设置为只读模式时,在is_read_only中返回1。

对于oracle db,您可以使用OPEN_MODE属性进行检查。