回答

收藏

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

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

我有这样的代码:
$ Q8 N' f. L2 Z% Oprivate bool CheckDatabase(string databaseName, bool bRet)
9 t' ^6 h. @5 @& k# W! a$ g2 c! _    {( C8 d' W9 s, B  L% n3 t1 F% c
        string connString = "Server=localhost\\SQLEXPRESS;Integrated Security=SSPI;database=master";/ K9 o+ [: g" U. ^9 d
        string cmdText = "select * from master.dbo.sysdatabases where name=\'" + databaseName + "\'";& [! N" [/ j5 ^) e: Y; O

: F, z" `/ v4 r4 N3 [        using (SqlConnection sqlConnection = new SqlConnection(connString)). k5 Y, Q+ _- L* B, N, I* V
        {
1 e3 c: m5 y( S+ u            sqlConnection.Open();
" m$ ~8 H' f# e4 N' u. {            using (SqlCommand sqlCmd = new SqlCommand(cmdText, sqlConnection))
1 u$ _6 J( C, w  F% z            {$ Q; C# K, U  H  g6 c* z
                int nRet = sqlCmd.ExecuteNonQuery();* x3 O0 U5 e8 Q" }
                // regMessage.Text = nRet.ToString();3 v* d3 @- x! `
                if (nRet 然而
% e* \/ t# B5 t
! \8 f7 I7 o( Z2 k% @3 z0 q" bnRet% ^0 J; `6 w2 Z; i8 Y% \
+ y8 x2 _) W% d, e0 l$ L
结果始终为-1,就好像数据库不存在(确实存在)一样。是由于数据库为空而引起的问题吗?还是如果数据库已创建,即使它为空,也应该返回>. [8 e$ h1 X9 N- B3 F
0?字符串databaseName是正确的。
5 X* [  k: y$ G编辑>编辑:我也收到“ CREATE DATABASE @database” ssql命令的存储错误:
8 t5 W: u, j5 D  h/ Q0 ?& B# u1 }
‘@userDatabase附近的语法不正确’
, p( X# y/ ]9 u7 b& B
5 t- j# T0 @' i% Z: L
代码是这样的:
) z5 l: H( r8 g. \    var connString = "Server=localhost\\SQLEXPRESS;Integrated Security = SSPI; database = master";8 T. ~/ r& V' L' v3 |0 w  ?7 _
                string cmdText = "CREATE DATABASE @userDatabase";
4 V9 p. \  Y5 U4 \8 ]                using (var sqlConnection = new SqlConnection(connString))
( n* }# E6 G" F% R                {6 M) v- N' X: g, y
                    using (var sqlCmd = new SqlCommand(cmdText, sqlConnection))3 Y/ E  r; b7 D) a% n9 T
                    {* @- |5 y, ?$ A
                        sqlCmd.Parameters.Add("@userDatabase", System.Data.SqlDbType.NVarChar).Value = databaseName;=
" J8 \3 h2 g0 [* _7 s0 \+ G- j                        sqlConnection.Open();& g+ O( S' z# K/ i; H8 }& U! H
                        sqlCmd.ExecuteNonQuery();
% I+ u# X- ]/ k                    }; @; l+ p0 y* ]& W$ B/ J* \) H3 Z
                }7 I' c4 }' s! l: s7 }
                2 F5 t" j  q7 n( }3 x$ Y7 S
解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则