-1

我有很多错误无法打开连接等。我使用 VS 2010 c# wpf

String str;
SqlConnection myConn = new SqlConnection("Server=localhost;Integrated security=SSPI;database=master");

str = " CREATE DATABASE "
     + " ON PRIMARY "
     + " (NAME = " + "MyDatabase_Data" + ", "
     + " FILENAME = '" + "C:\\MyDatabaseData.mdf" + "', "
     + " SIZE = 2MB,"
     + " FILEGROWTH =" + "10%" + ") "
     + " LOG ON (NAME =" + "MyDatabase_Log" + ", "
     + " FILENAME = '" + "C:\\MyDatabaseLog.ldf" + "', "
     + " SIZE = 1MB, "
     + " FILEGROWTH =" + "10%" + ") ";

SqlCommand myCommand = new SqlCommand(str, myConn);
try
{
    myConn.Open();
    myCommand.ExecuteNonQuery();
    MessageBox.Show("DataBase is Created Successfully", "MyProgram", MessageBoxButton.OK, MessageBoxImage.Information);
}
catch (System.Exception ex)
{
    MessageBox.Show(ex.ToString(), "MyProgram", MessageBoxButton.OK, MessageBoxImage.Information);
}
finally
{
    if (myConn.State == ConnectionState.Open)
    {
        myConn.Close();
    }
}
4

1 回答 1

0

添加以下引用:

  • c:\Program Files\Microsoft SQL
    Server\100\SDK\Assemblies\Microsoft.SqlServer.Smo.dll
  • C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.Management.Sdk.Sfc.dll
  • c:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfo.dll

在 App config 请插入以下片段

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0"/>
</startup> 

编码:

var myConn = "Server=localhost;Integrated security=SSPI;database=master";

//The CREATE DATABASE statement failed. The primary file must be at least 3 MB to accommodate a copy of the model database.
var command = @"
CREATE DATABASE myDB
ON PRIMARY 
(
NAME = MyDatabaseData, 
FILENAME = 'C:\Temp\MyDatabaseData.mdf', 
SIZE = 3MB,
FILEGROWTH =10%
) 
LOG ON 
(
NAME =MyDatabaseLog, 
FILENAME = 'C:\Temp\MyDatabaseLog.ldf', 
SIZE = 1MB, 
FILEGROWTH =10%
)";

using (var conn = new SqlConnection(myConn))
{
  try
  {
    var server = new Server(new ServerConnection(conn));
    server.ConnectionContext.ExecuteNonQuery(command);
  }
  catch (Exception e)
  {
    Console.WriteLine(e.Message);

  }
}
于 2013-03-13T11:38:27.977 回答