C#-创建新的SQL Server数据库导致错误

C#-创建新的SQL Server数据库导致错误,c#,.net,sql-server,sql-server-express,smo,C#,.net,Sql Server,Sql Server Express,Smo,我正在尝试使用Microsoft.SqlServer.Management.Smo以编程方式在我的服务器上创建一个新数据库,但它始终无法创建数据库: Server svr = new Server(new ServerConnection(@".\SQLEXPRESS")); Database db = new Database(svr, "TESTDB"); db.Create(); 我在db.create()中得到这个错误: Microsoft.SqlServer.Smo.dll中发生类

我正在尝试使用Microsoft.SqlServer.Management.Smo以编程方式在我的服务器上创建一个新数据库,但它始终无法创建数据库:

Server svr = new Server(new ServerConnection(@".\SQLEXPRESS"));
Database db = new Database(svr, "TESTDB");
db.Create(); 
我在
db.create()中得到这个错误

Microsoft.SqlServer.Smo.dll中发生类型为Microsoft.SqlServer.Management.Smo.FailedOperationException“的未处理异常

服务器名称正确,我正在使用Windows身份验证连接到服务器


请提供帮助,如果有更好的方法,请让我知道

在您发布的图像中,我看到消息“执行transact-sql语句或批处理时发生异常”

所以,我认为这是一个权限问题。如图所示,您可以尝试以下步骤列表:

  • 以管理员(或任何具有管理员权限的用户)身份登录计算机
  • 打开“SQL Server配置管理器”
  • 单击左侧窗格中的“SQL Server服务”
  • 如果右窗格中的“SQL Server”和“SQL Server代理”实例正在运行,请停止该实例
  • 通过右键单击“SQL Server”实例->属性(在SQL Server Configuration Manager的右侧窗格中),以单用户模式运行SQL Express
  • 单击高级选项卡,并查找“启动参数”。更改“启动参数”,使新值为-m;(未经批准) 例子: 发件人:-dc:\Program Files\Microsoft SQL………..(直到字符串结束) 至:-m-dc:\Program Files\Microsoft SQL………..(直到字符串结束)
  • 启动SQL Server
  • 打开MS SQL Server Management Studio,并以“Windows身份验证”作为身份验证模式登录到SQL Server。由于SQL Server以单用户模式运行,并且您以管理员权限登录到计算机,因此您将拥有对数据库的“sysadmin”访问权限
  • 展开左侧窗格中MS SQL Server Management Studio上的“安全”节点
  • 展开“登录”节点
  • 双击“sa”登录
  • 如果勾选了“强制密码策略”,则通过输入复杂密码来更改密码,否则,只需输入任意密码即可
  • 通过单击左窗格上的状态,确保“sa”帐户已“启用”。将“登录”下的无线电框设置为“已启用”
  • 单击“确定”
  • 返回MS SQL Server Management Studio的主窗口,右键单击左窗格中最顶部的节点(通常为“\SQLEXPRESS(SQL Server)”)并选择属性,以验证是否使用了SQL Server身份验证
  • 单击左窗格中的“安全性”,并确保“SQL Server和Windows身份验证模式”是在“服务器身份验证”下选择的模式
  • 单击“确定”
  • 断开与MS SQL Server Management Studio的连接
  • 再次打开“Sql Server配置管理器”并停止Sql Server实例
  • 右键单击SQL Server实例,然后单击“高级”选项卡。再次查找“启动参数”,删除前面添加的“-m;”
  • 单击“确定”并再次启动SQL Server实例
  • 现在,您应该能够使用在步骤12中设置的新密码以“sa”身份登录

  • 无论如何,如果smo安装正确。

    是否有异常消息或InnerException?通常,除了异常的名称之外,还有更多的可用详细信息。发布内部异常或进一步的详细信息我只需使用SqlClient并使用TSQL DDL创建数据库。SMO其实并不容易,你必须安装它。请参阅当我单击“详细信息”时,它给了我以下信息:{“为数据库'TESTDB'创建失败”。}如果您有一组TSQL批处理,只需使用SqlConnection和SqlCommand来运行它们。不需要SMO。