回答

收藏

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

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

我有这样的代码:
( e& v7 H  i1 @8 K: R5 Xprivate bool CheckDatabase(string databaseName, bool bRet)/ s0 p% N+ u0 R, T. e' Q* L
    {
: }8 y* g$ t' R0 l        string connString = "Server=localhost\\SQLEXPRESS;Integrated Security=SSPI;database=master";
* c) f0 e7 A( G: }! g7 {        string cmdText = "select * from master.dbo.sysdatabases where name=\'" + databaseName + "\'";9 B: l- g* R, m
0 {) J3 Y8 z  |. P8 v
        using (SqlConnection sqlConnection = new SqlConnection(connString))8 W; q5 V' }% ~
        {$ R) m. R: e, I8 B# C: ?% x) x- {7 c& P
            sqlConnection.Open();
% g5 _/ G. I4 o' \6 l3 z            using (SqlCommand sqlCmd = new SqlCommand(cmdText, sqlConnection))& t2 A0 i9 m2 ^8 I2 P  F
            {( m) a1 W& a6 h/ i% n
                int nRet = sqlCmd.ExecuteNonQuery();
3 W, i7 L" {5 ~                // regMessage.Text = nRet.ToString();
# U' V" U8 e+ E, b0 t% C                if (nRet 然而
& x& s# U* Q3 T+ E# |. R3 G  j; [  S" q
nRet  ]) u* r0 c; I2 N* E( ^7 {
1 a( J9 Z) R( p: h' K
结果始终为-1,就好像数据库不存在(确实存在)一样。是由于数据库为空而引起的问题吗?还是如果数据库已创建,即使它为空,也应该返回>; j- Z! S0 f$ @: q
0?字符串databaseName是正确的。
: @0 j. R# B* r8 R& J$ Z. s' s编辑>编辑:我也收到“ CREATE DATABASE @database” ssql命令的存储错误:
" |3 t9 s3 M, M% y5 e2 n. m* \+ N) y+ I" r
‘@userDatabase附近的语法不正确’
6 ^4 \4 p2 s# H
' p7 u9 v8 A: Z
代码是这样的:
, S6 S% Z4 U3 \! J# k3 S    var connString = "Server=localhost\\SQLEXPRESS;Integrated Security = SSPI; database = master";; F, W  r/ y6 b0 j4 N, Q  w
                string cmdText = "CREATE DATABASE @userDatabase";' B! q1 V: c0 J, I( b
                using (var sqlConnection = new SqlConnection(connString))% H0 ?3 U6 W. B! l2 o0 D
                {
& o& k( \9 F4 i9 E( a# b+ Q1 e" y" Z                    using (var sqlCmd = new SqlCommand(cmdText, sqlConnection))
5 C. S: c  _+ R4 B, ?3 `2 B                    {
% p! [$ ?( ^  V. v) @                        sqlCmd.Parameters.Add("@userDatabase", System.Data.SqlDbType.NVarChar).Value = databaseName;=
1 S* W& n% V( e) n+ B0 }" G; \+ F                        sqlConnection.Open();
! N! z8 G; ]  k4 p7 Y                        sqlCmd.ExecuteNonQuery();
- B" N* u* U- ^# T                    }
( w. X- N) X! B, Y: Y                }
: h+ d; r5 m; @& h' @                2 }( Z  N6 G, f( N
解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则