此代码创建具有特定属性的自定义数据库。
在运行代码前,将存放所创建的 .mdf 和 .ldf 文件的文件夹必须已经存在,否则将生成异常。
如果想创建一个类似于 SQL Server 的 Model 数据库的数据库并想让它存储在默认位置,那么请更改代码中的 str 变量:
str = "CREATE DATABASE MyDatabase"
在进程中创建数据库
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class slu1 : System.Web.UI.Page { protected void Page_Load( object sender, EventArgs e) { if (!IsPostBack) { if (execfile()) { Response.Write( " Success "); } } } /// <summary> /// 创建连接起用进程建立数据库 /// </summary> /// <returns></returns> private bool execfile() { try { string connStr = " data source=127.0.0.1;user id=sa;password=sa;persist security info=false;packet size=4096 "; ExecuteSql(connStr, " master ", " CREATE DATABASE " + " SqlTest "); // 调用ExecuteNonQuery()来创建数据库 System.Diagnostics.Process sqlProcess = new System.Diagnostics.Process(); // 创建一个进程 sqlProcess.StartInfo.FileName = " osql.exe "; // OSQL基于ODBC驱动连接服务器的一个实用工具(可查阅SQL帮助手册) // string str = @"C:\Program Files\Microsoft SQL Server\MSSQL\Data"; sqlProcess.StartInfo.Arguments = " -U sa -P sa -d SqlTest -i C:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data "; // 获取启动程序时的参数 sqlProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; // 调用进程的窗口状态,隐藏为后台 sqlProcess.Start(); sqlProcess.WaitForExit(); sqlProcess.Close(); return true; } catch (Exception ex) { throw ex; } } /// <summary> /// 创建数据库,调用ExecuteNonQuery()执行 /// </summary> /// <param name="conn"></param> /// <param name="DatabaseName"></param> /// <param name="Sql"></param> private void ExecuteSql( string conn, string DatabaseName, string Sql) { System.Data.SqlClient.SqlConnection mySqlConnection = new System.Data.SqlClient.SqlConnection(conn); System.Data.SqlClient.SqlCommand Command = new System.Data.SqlClient.SqlCommand(Sql, mySqlConnection); Command.Connection.Open(); Command.Connection.ChangeDatabase(DatabaseName); try { Command.ExecuteNonQuery(); } finally { Command.Connection.Close(); } } }