苏州三木软件科技有限公司

 找回密码
 立即注册
搜索
热搜: 活动
查看: 15|回复: 2

判断数据库是否存在的代码

[复制链接]

28

主题

40

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
发表于 3 天前 | 显示全部楼层 |阅读模式
下面这个代码,在平台里怎么补全命名空间?
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();

    // 查询数据库是否存在
    using (SqlCommand command = new SqlCommand("IF DB_ID('XMLB2') IS NOT NULL SELECT 1 ELSE SELECT 0", connection))
    {
        int exists = (int)command.ExecuteScalar();

        if (exists == 1)
        {
            // 数据库存在,进行后续操作
        }
        else
        {
            // 数据库不存在,处理相应情况
        }
    }
}
回复

使用道具 举报

22

主题

296

帖子

1870

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1870
QQ
发表于 3 天前 | 显示全部楼层
从两个方向上去解决上面的问题。
方案一:直接使用上面的代码。森之格平台是支持在网上查找的.Net代码直接在平台内使用的。
1、如果是在窗体事件和表事件这种自己修改添加命名空间的场景:这里我们就可以直接在最上面添加一下代码中相应对象的命名空间

2、如果是在像内部函数这种无法自己添加命令空间的场景有两种解决方案,一种是在代码块中补全每个对象的全命名空间。就像下图这样。

另外一种,可以考虑在平台内部添加一个命名空间。在整个平台添加命名空间是有可能带来一些风险的。因为你添加的命名空间下有可能存在一些类名称与平台内或者其他第三方组件相应的类名称冲突,导致之前的代码有异常,发布报错。所以还是得谨慎添加。


方案二:理解上面的代码,转化为平台内部的代码。
  1. int exists =Proj.SysDataFactory["UserDB"].ExecuteScalar("IF DB_ID('XMLB2') IS NOT NULL SELECT 1 ELSE SELECT 0").CType<int>(0);
  2. if (exists == 1)
  3. {
  4.         // 数据库存在,进行后续操作
  5. }
  6. else
  7. {
  8.         // 数据库不存在,处理相应情况
  9. }
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

22

主题

296

帖子

1870

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1870
QQ
发表于 前天 20:06 | 显示全部楼层
针对标题的答案,其实还可以用另外一段代码来达到相似的效果
  1. if(Proj.SysDataFactory["UserDB"].GetDatabaseNames().Contains("XMLB2"))
  2. {
  3.         // 数据库存在,进行后续操作
  4. }
  5. else
  6. {
  7.         // 数据库不存在,处理相应情况
  8. }
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|苏州三木软件科技有限公司 ( 苏ICP备2022038390号 )

苏公网安备 32058502010732号

GMT+8, 2024-7-5 03:48 , Processed in 0.063376 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表