我想知道如何检查Access数据库中的特定表(例如:myTable)中是否存在特定列(例如:日期)。
Access
我已经阅读了此答案,该答案提供了一个查询,该查询导致另一个查询。
IF NOT EXISTS(SELECT * FROM sys.columns WHERE [name] = N'columnName' AND [object_id] = OBJECT_ID(N'tableName')) BEGIN ALTER TABLE ADD COLUMN MYCOLUMN END
但是我需要的是true/false结果。
true/false
更新1
如何在C#应用程序中做到这一点?
也许使用SqlCommand.ExecuteScalar()或其他?
SqlCommand.ExecuteScalar()
感谢所有提供解决方案并收集了一些答案的人,我提出了自己的解决方案版本。也许这不是最好的解决方案,但是至少我不需要额外的dll来添加引用或处理某些stored procedures不支持的Access。
stored procedures
OleDbConnection con = new OleDbConnection("my database address"); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = con; cmd.CommandType = CommandType.Text; cmd.CommandText = "SELECT TOP 1 date FROM myTable"; con.Open(); bool exists = true; try { var x = cmd.ExecuteScalar(); } catch (Exception e) { exists = false; } con.Close();