回答

收藏

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

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

我有这样的代码:
  b: `' ?( ]8 E+ d; Y1 h) Dprivate bool CheckDatabase(string databaseName, bool bRet)
# T- c- h2 z5 R    {. l5 a0 T8 Q* h) {# b. O2 {; \) Q
        string connString = "Server=localhost\\SQLEXPRESS;Integrated Security=SSPI;database=master";
/ N' j% z; E& ?% C: M% g        string cmdText = "select * from master.dbo.sysdatabases where name=\'" + databaseName + "\'";6 e4 U! i# |* r- B2 s

, m: Z) @' o, k" p3 ]: _        using (SqlConnection sqlConnection = new SqlConnection(connString)). Q) B/ w, P4 x& p, Z+ k9 d' I
        {
' i* G" ?( X, n7 E, J            sqlConnection.Open();& X3 `4 c3 v- o0 C( ?, a0 |! Z
            using (SqlCommand sqlCmd = new SqlCommand(cmdText, sqlConnection))8 S2 M6 d; l2 N
            {1 Q2 |) h7 U, R# U% z: V
                int nRet = sqlCmd.ExecuteNonQuery();
8 K4 X2 p9 ^) q" \9 M/ l                // regMessage.Text = nRet.ToString();! {1 b' n* G8 z' N- e! c& y
                if (nRet 然而2 u1 C9 f/ i: _8 C& x& L( ?
0 J1 v" R& K+ {- K0 e) u2 G4 {. l
nRet
" Z# H8 N5 p5 @. t' e

2 G9 U# i# R$ ^$ g+ S结果始终为-1,就好像数据库不存在(确实存在)一样。是由于数据库为空而引起的问题吗?还是如果数据库已创建,即使它为空,也应该返回>
% L! s2 b. y' _. o0?字符串databaseName是正确的。4 O" W1 l) G& z5 Q& o3 ]  o
编辑>编辑:我也收到“ CREATE DATABASE @database” ssql命令的存储错误:6 W' i. g, ^. X+ z3 U
& ^  t, b! J) M3 N
‘@userDatabase附近的语法不正确’
; |; p9 a* [: }! s' p6 m3 s4 l

1 N1 _& @! D! [: i% j1 E# |代码是这样的:) F0 b, T5 _8 H) x. g
    var connString = "Server=localhost\\SQLEXPRESS;Integrated Security = SSPI; database = master";. @* P5 T$ {9 q
                string cmdText = "CREATE DATABASE @userDatabase";6 W) X( b3 s  j5 B% i- K
                using (var sqlConnection = new SqlConnection(connString))
: ~2 M* U; ?1 j$ W& [8 V                {: T$ r: d! l6 Y. v: ^" N
                    using (var sqlCmd = new SqlCommand(cmdText, sqlConnection))+ r. e, M7 M3 C' |
                    {
: j% C+ }1 Z9 n& S4 f$ b/ h" R" Q                        sqlCmd.Parameters.Add("@userDatabase", System.Data.SqlDbType.NVarChar).Value = databaseName;=
8 l: j' r# ~( t                        sqlConnection.Open();0 W# x5 J: j/ j5 ]0 q1 p
                        sqlCmd.ExecuteNonQuery();
6 Q/ l( @$ J; ?/ D5 ^; ^! Q                    }
- d9 s. V+ {, j: X                }
# i- O, z1 Q0 R" d; Z6 D               
! F3 v( a% V' r6 `# ]5 v  i解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则