C# 如何验证OdbcConnection是否为只读?
我有一个开放的OdbcConnection,我正在尝试使用OdbcCommand写入数据库,我想在插入数据之前验证数据库是否为只读 我可以使用try-and-catch,但我希望有更好的解决方案 提前谢谢C# 如何验证OdbcConnection是否为只读?,c#,database,C#,Database,我有一个开放的OdbcConnection,我正在尝试使用OdbcCommand写入数据库,我想在插入数据之前验证数据库是否为只读 我可以使用try-and-catch,但我希望有更好的解决方案 提前谢谢 OdbcConnection con = new OdbcConnection("DSN=SERVER1;UID=User;PWD=User"); try { con.Open(); OdbcCommand cmd = con.CreateCommand();
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]实体数据库错误10013:事务为只读
对于sql server,您可以使用: 信息存储在sys.databases中
SELECT name, is_read_only
FROM sys.databases
WHERE name = 'MyDBNAme'
GO
--当数据库设置为只读模式时,返回1 in is_read_only
对于oracle db,您可以使用OPEN_MODE属性进行检查。这取决于数据库。对于SQL Server,问题不是odbcconnection是只读的,而是数据库表是只读的吗。我只是觉得我可以从odbcconnection获取信息:)