不附加数据库 ASP.NET调用.“.NET研究”sql文件

本文介绍了一种在ASP.NET应用程序中自动创建数据库及其表结构的方法。通过使用SQL脚本和C#代码相结合的方式,实现了无需手动配置即可完成数据库初始化的过程。

  笔者好久没有写随笔了,这次是遇到提出这样的问题“不用附加数据库,什么修改web.config什么的那么麻烦,而是直接运行一个页面,然后根据向导一步一步引导用户安装生成数据库”那么这样做就需要一个创建数据库的语句和创建这些数据库表的语句,还有这些创建数据库视图以及函数的语句。创建数据库语句好办,


  
" IF Not EXISTS (select name from master.dbo.sysdatabases where name =
N'
" + DataBaseName + " ') CREATE DATABASE " + DataBaseName " Use [ "
+ DataBaseName + " ]; "

  在asp.net中的cs文件中像执行sql语句一样执行就行了。

  那么创建数据库的语句怎么得到呢?一个方法是设计数据库的文件中直接生成,另外一个方法从现有的数据库中获得。选取数据库点击反键如图

1

  然后选择任务的生成脚本

1

   然后选择任务的生成脚本

  下面弹出来的对话框中的选择笔者相信大家都会,按照自己所需选择,不知道的就不要管了。但是要注意这个页面

1

  首先这里只选择表,因为仅仅是需要表的执行语句。那么可以生成一个.sql文件。笔者这里命名为:CreateTable.sql

  那么我们只用在cs文件中读取CreateTable.sql中的字符串即可像sql语句一样执行


  
StreamReader strRead <上海徐汇企业网站制作/span>= File.OpenText("D:\\CareateTable.sql"上海徐汇企业网站设计与制作le="color: #000000;">);
string strContent= strRead .ReadToEnd(); strRead .Close();
SqlConnection con
=new SqlConnection();
con
="连接数据库字符串";
SqlCommond com
=new
SqlCommond();
com.Connection
=con;
com.CommandTest
=strContent;
com.CommandType
= CommandType.Text;
con.Open();
try
{
con.ExecuteNonQuery();
}
catch上海企业网站制作> (
Exception ex) { ...... }
finally上海闵行企业网站制作
{ conn.Close(); }

  那么会发现报错,就是g上海网站建设o语句附近有错误。可以利用word替换go成""那么在运行程序就发现数据库表也就创建出来了。

  那么可能会遇到这种情况,数据库包含存储过程,视图,函数等。这就是笔者遇到的情况。那么此时就需要在那个特别的图上全选。然而笔者照上面的做总是会报错,但是在sql里执行就没有报错。最终也终于解决该问题


  
Process sqlprocess = new Process();
sqlprocess.StartInfo.FileName
= " osql.exe " ;
// U为用户名,P为密码,S为目标服务器的ip,infile为数据库脚本所在的路径
sqlprocess.StartInfo.Arguments = String.Format( " -U {0} -P {1} -S {2} -i {3} -d {4} " ,
"
sa " , " asd123 " 上海企业网站设计与制作 , " 127.0.0.1 " , " D:\\CreateTable.sql " ,DataBaseName);
sqlprocess.Start();
// 等待程序执行.Sql脚本
sqlprocess.WaitForExit();
sqlprocess.Close();
Response.Write(
" <script>alert('Ok.');
</ script > " );

  这样在asp.net中就可以调用.sql文件了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值