C#-创建新的SQL Server数据库导致错误
我正在尝试使用Microsoft.SqlServer.Management.Smo以编程方式在我的服务器上创建一个新数据库,但它始终无法创建数据库: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中发生类
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。