private void Form1_Load(object sender, EventArgs e)
{
execfile();
}
private void execfile()
{
try
{
string connStr = "data source=(local);user id=sa;password=kidd;persist security info=false;packet size=4096";
ExecuteSql(connStr, "master", "CREATE DATABASE " + "Northwind"); //这个数据库名是指你要新建的数据库名称 下同
System.Diagnostics.Process sqlProcess = new System.Diagnostics.Process();
sqlProcess.StartInfo.FileName = "osql.exe ";
sqlProcess.StartInfo.Arguments = " -U sa -P kidd -d Northwind -i SQLQuery2.sql";
sqlProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
sqlProcess.Start();
sqlProcess.WaitForExit();
sqlProcess.Close();
}
catch (Exception ex)
{
throw ex;
}
}
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();
}
}
为什么能创建数据库,但是缺无法执行sql脚本?编译也没出错.
osql.exe和SQLQuery2.sql都已经添加进去项目里,并且属性设置为嵌入的资源.
求高人指点....
sqlProcess.StartInfo.Arguments = "-S (local) -U sa -P kidd -d Northwind -i @"C:\Program Files\SQLQuery2.sql"";