如何在C#中用程序执行指定的SQL脚本文件,实现自动安装创建数据库? 现在我要做一个程序,在选择指定的SQL Server服务器,并用指定用户登录后,实现创建数据库。数据库脚本已经以文件的形式存放。问题是如何在C#中执行指定的SQL 脚本文件,实现自完成创建数据库? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void execfile() { try { string connStr = "data source={0};user id={1};password={2};persist security info=false;packet size=4096"; ExecuteSql(connStr, "master", "CREATE DATABASE " + "数据库名"); //这个数据库名是指你要新建的数据库名称 下同 System.Diagnostics.Process sqlProcess = new System.Diagnostics.Process(); sqlProcess.StartInfo.FileName = "osql.exe "; sqlProcess.StartInfo.Arguments = " -U 数据库用户名 -P 密码 -d 数据库名 -i 存放sql文本的目录sql.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(); } } 或者直接执行create database....脚本也是可以的。 哪位知道CommunityServer中是怎么实现的? 好像不行哦,有问题的,我也不知道是怎么回事,有没有例子发一个看看呀我的QQ20818468X http://www.5ivb.net/Info/86/Info30712/ CommunityServer也是通过执行脚本创建数据库,你可以看一下他的源码. if (version == "2000") { newProcess.StartInfo.FileName = "osql.exe"; if (user == "" && password == "") newProcess.StartInfo.Arguments = "-S " + server + " -E -d " + databasename + " -i " + NewPath; else newProcess.StartInfo.Arguments = "-U " + user + " -P " + password + " -S " + server + " -d " + databasename + " -i " + NewPath; } if (version == "2005") { newProcess.StartInfo.FileName = "sqlcmd.exe"; if (user == "" && password == "") newProcess.StartInfo.Arguments = "-S " + server + " -d " + databasename + " -i " + NewPath; else newProcess.StartInfo.Arguments = "-U " + user + " -P " + password + " -S " + server + " -d " + databasename + " -i " + NewPath; } newProcess.Start(); newProcess.WaitForExit(); 急?求高手指点指点! 发送.txt附件导致程序崩溃 正则表达式基础问题 用C#制作“涂鸦板”的问题:如何实现自动重绘? 抓包软件的问题 菜鸟提问 大家帮忙 求教 请问c#中如何保存用户自定义的快捷键?谢谢 关于控件中捕捉鼠标操作的相关问题请大家帮忙解答 请教:有谁说说用C#写Control,并且能在Form中使用 求一个普通的窗体设计器 关于编写留言板的一些问题(c#.NET) VS2005下,PrintDocument为何只打印B5大小的页面,打不出A4?
{
try
{
string connStr = "data source={0};user id={1};password={2};persist security info=false;packet size=4096";
ExecuteSql(connStr, "master", "CREATE DATABASE " + "数据库名"); //这个数据库名是指你要新建的数据库名称 下同
System.Diagnostics.Process sqlProcess = new System.Diagnostics.Process();
sqlProcess.StartInfo.FileName = "osql.exe ";
sqlProcess.StartInfo.Arguments = " -U 数据库用户名 -P 密码 -d 数据库名 -i 存放sql文本的目录sql.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();
}
}
有没有例子发一个看看呀
我的QQ20818468
X
{
newProcess.StartInfo.FileName = "osql.exe";
if (user == "" && password == "")
newProcess.StartInfo.Arguments = "-S " + server + " -E -d " + databasename + " -i " + NewPath;
else
newProcess.StartInfo.Arguments = "-U " + user + " -P " + password + " -S " + server + " -d " + databasename + " -i " + NewPath;
}
if (version == "2005")
{
newProcess.StartInfo.FileName = "sqlcmd.exe";
if (user == "" && password == "")
newProcess.StartInfo.Arguments = "-S " + server + " -d " + databasename + " -i " + NewPath;
else
newProcess.StartInfo.Arguments = "-U " + user + " -P " + password + " -S " + server + " -d " + databasename + " -i " + NewPath;
}
newProcess.Start();
newProcess.WaitForExit();