在c#wpf运行时错误中创建sql server DB

时间:2013-03-13 10:20:14

标签: sql-server wpf c#-4.0

我有很多错误无法打开连接等我使用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();
    }
}

1 个答案:

答案 0 :(得分:0)

添加以下参考文献:

  • c:\ Program Files \ Microsoft SQL
    服务器\ 100 \ SDK \装配\ 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 服务器\ 100 \ SDK \装配\ 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);

  }
}