笔者好久没有写随笔了这次是遇到提出这样的问题不用附加数据库什么修改nfig什么的那么麻烦而是直接运行一个页面然后根据向导一步一步引导用户安装生成数据库那么这样做就需要一个创建数据库的语句和创建这些数据库表的语句还有这些创建数据库视图以及函数的语句创建数据库语句好办
IF Not EXISTS (select name from masterdbosysdatabases where name = N + DataBaseName+ ) CREATE DATABASE + DataBaseName
Use [ + DataBaseName+ ];
在中的cs文件中像执行sql语句一样执行就行了
那么创建数据库的语句怎么得到呢?一个方法是设计数据库的文件中直接生成另外一个方法从现有的数据库中获得选取数据库点击反键如图
然后选择任务的生成脚本
下面弹出来的对话框中的选择笔者相信大家都会按照自己所需选择不知道的就不要管了但是要注意这个页面
首先这里只选择表因为仅仅是需要表的执行语句那么可以生成一个sql文件笔者这里命名为:CreateTablesql
那么我们只用在cs文件中读取CreateTablesql中的字符串即可像sql语句一样执行
StreamReader strRead = FileOpenText(D:\\CareateTablesql);
string strContent= strRead ReadToEnd();
strRead Close();
SqlConnection con=new SqlConnection();
con=连接数据库字符串;
SqlCommond com=new SqlCommond();
comConnection=con;
comCommandTest=strContent;
comCommandType = CommandTypeText;
conOpen();
try
{
conExecuteNonQuery();
}
catch (Exception ex)
{
}
finally
{
connClose();
}
那么会发现报错就是go语句附近有错误可以利用word替换go成那么在运行程序就发现数据库表也就创建出来了
那么可能会遇到这种情况数据库包含存储过程视图函数等这就是笔者遇到的情况那么此时就需要在那个特别的图上全选然而笔者照上面的做总是会报错但是在sql里执行就没有报错最终也终于解决该问题
Process sqlprocess = new Process();
sqlprocessStartInfoFileName = osqlexe;
//U为用户名P为密码S为目标服务器的ipinfile为数据库脚本所在的路径
sqlprocessStartInfoArguments = StringFormat(U {} P {} S {} i {} d {}
sa asd D:\\CreateTablesqlDataBaseName);
sqlprocessStart();
//等待程序执行Sql脚本
sqlprocessWaitForExit();
sqlprocessClose();
ResponseWrite(<script>alert(Ok);</script>);
这样在中就可以调用sql文件了