回答

收藏

检查数据库是否存在MSSQL C#

技术问答 技术问答 520 人阅读 | 0 人回复 | 2023-09-11

我有这样的代码:
0 T/ V  S. ?7 a# d+ A2 Y/ Iprivate bool CheckDatabase(string databaseName, bool bRet)
  x, Z; ^+ Y2 C! q$ v8 ^    {
" |+ a, s9 Y+ J6 Y7 o        string connString = "Server=localhost\\SQLEXPRESS;Integrated Security=SSPI;database=master";
6 }  r0 m+ ]6 w* D( b        string cmdText = "select * from master.dbo.sysdatabases where name=\'" + databaseName + "\'";- n- R4 g' o1 n
- m. C! ]* k* ?$ v, Q8 `& ~- _
        using (SqlConnection sqlConnection = new SqlConnection(connString))
+ s7 q( W. {6 J1 C, ]/ o$ ^        {
7 p3 C8 S+ w: ?1 K3 B            sqlConnection.Open();
$ [/ _2 {0 {3 V9 w( J$ U            using (SqlCommand sqlCmd = new SqlCommand(cmdText, sqlConnection))$ d+ O! e* z# {. ?  X$ s. I( E
            {
* p; a" f2 \5 H& q                int nRet = sqlCmd.ExecuteNonQuery();
* ]! _4 u! w1 n/ x7 \                // regMessage.Text = nRet.ToString();
/ l; `+ u: u1 h* I/ ^                if (nRet 然而
+ Q  F. b8 @, L8 d& A  r2 F
9 I- n' q; ]5 V5 knRet0 y  W8 d6 l' m# x: ?; z( ?' N5 ~
2 f2 Q5 V' a: K
结果始终为-1,就好像数据库不存在(确实存在)一样。是由于数据库为空而引起的问题吗?还是如果数据库已创建,即使它为空,也应该返回>9 B. w0 X/ S. P8 A& {$ R3 n& I$ F8 @
0?字符串databaseName是正确的。% F: E' _8 B# ~  K( J
编辑>编辑:我也收到“ CREATE DATABASE @database” ssql命令的存储错误:
* A" x& F; F2 U7 J8 M
$ V2 h+ B7 Q+ }9 {5 A) F7 X( O; [‘@userDatabase附近的语法不正确’) K1 D& U5 b$ H1 V/ U

0 K- J! o$ d! i$ T1 m9 G$ C1 d代码是这样的:
1 A* j  F9 T# I% p% R' H4 T6 {    var connString = "Server=localhost\\SQLEXPRESS;Integrated Security = SSPI; database = master";9 ~) `1 e; _2 z
                string cmdText = "CREATE DATABASE @userDatabase";' a( j8 ]" {5 w; c7 V
                using (var sqlConnection = new SqlConnection(connString))
7 ~/ x! x! |8 h, F6 ~+ M9 _0 @                {, q* U5 [2 g0 Y: p" t- S9 C* L
                    using (var sqlCmd = new SqlCommand(cmdText, sqlConnection)), a/ L# @4 G& M0 k+ `9 E# t) S" ]
                    {( S: H0 J/ R% P+ W. A
                        sqlCmd.Parameters.Add("@userDatabase", System.Data.SqlDbType.NVarChar).Value = databaseName;=6 V1 a$ w3 n+ o8 i/ |
                        sqlConnection.Open();
  Y& E! }) f7 j& H' x8 A' v# i                        sqlCmd.ExecuteNonQuery();
9 \) G) c# t. n: }                    }
& m; C1 B2 t- j% E& z+ {$ V                }
0 x! `" b) c" m+ O- h                - L1 W7 k- e: v1 @" P9 F
解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则