【发布时间】:2012-01-05 07:20:16
【问题描述】:
我从用户那里得到一个 SQL 数据库连接字符串,然后我想检查数据库中的特定表或特殊存储过程?
如何在 C# 中做到这一点?
【问题讨论】:
-
编辑了语法。换句话说,您是在尝试查询数据库的架构(表等)吗?
-
另见简单的数据库模式查询示例:blog.sqlauthority.com/2007/06/26/…
我从用户那里得到一个 SQL 数据库连接字符串,然后我想检查数据库中的特定表或特殊存储过程?
如何在 C# 中做到这一点?
【问题讨论】:
这个的快捷方式是(在 SQL 中):
SELECT OBJECT_ID('tableName')
或
SELECT OBJECT_ID('storedprocedurename')
如果这些返回 null (DBNull.Value),则该项目不存在。否则,它会。
因此,在 C# 中,这将类似于:
using (var conn = new SqlConnection(connectionString))
{
conn.Open();
var cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = @"SELECT OBJECT_ID('" + MyObjectName + @"')";
if (cmd.ExecuteScalar() == DBNull.Value)
{
Console.WriteLine("Does not exist");
}
else
{
Console.WriteLine("Does exist");
}
}
【讨论】: