不附加数据库 ASP.NET调用.sql文件
2010-12-11 11:26
375 查看
笔者好久没有写随笔了,这次是遇到提出这样的问题“不用附加数据库,什么修改web.config什么的那么麻烦,而是直接运行一个页面,然后根据向导一步一步引导用户安装生成数据库”那么这样做就需要一个创建数据库的语句和创建这些数据库表的语句,还有这些创建数据库视图以及函数的语句。创建数据库语句好办,
在asp.net中的cs文件中像执行sql语句一样执行就行了。
那么创建数据库的语句怎么得到呢?一个方法是设计数据库的文件中直接生成,另外一个方法从现有的数据库中获得。选取数据库点击反键如图
![](http://image20.it168.com/201011_500x375/340/b7706b123dc33bb4.png)
然后选择任务的生成脚本
![](http://image20.it168.com/201011_500x375/340/c72c3b1bdb8e96ec.png)
然后选择任务的生成脚本
下面弹出来的对话框中的选择笔者相信大家都会,按照自己所需选择,不知道的就不要管了。但是要注意这个页面
![](http://image20.it168.com/201011_500x375/340/fe0856916d6cf13f.png)
首先这里只选择表,因为仅仅是需要表的执行语句。那么可以生成一个.sql文件。笔者这里命名为:CreateTable.sql
那么我们只用在cs文件中读取CreateTable.sql中的字符串即可像sql语句一样执行
那么会发现报错,就是go语句附近有错误。可以利用word替换go成""那么在运行程序就发现数据库表也就创建出来了。
那么可能会遇到这种情况,数据库包含存储过程,视图,函数等。这就是笔者遇到的情况。那么此时就需要在那个特别的图上全选。然而笔者照上面的做总是会报错,但是在sql里执行就没有报错。最终也终于解决该问题
这样在asp.net中就可以调用.sql文件了。
"IF Not EXISTS (select name from master.dbo.sysdatabases where name = N'" + DataBaseName+ "') CREATE DATABASE " + DataBaseName"Use [" + DataBaseName+ "];"
在asp.net中的cs文件中像执行sql语句一样执行就行了。
那么创建数据库的语句怎么得到呢?一个方法是设计数据库的文件中直接生成,另外一个方法从现有的数据库中获得。选取数据库点击反键如图
![](http://image20.it168.com/201011_500x375/340/b7706b123dc33bb4.png)
然后选择任务的生成脚本
![](http://image20.it168.com/201011_500x375/340/c72c3b1bdb8e96ec.png)
然后选择任务的生成脚本
下面弹出来的对话框中的选择笔者相信大家都会,按照自己所需选择,不知道的就不要管了。但是要注意这个页面
![](http://image20.it168.com/201011_500x375/340/fe0856916d6cf13f.png)
首先这里只选择表,因为仅仅是需要表的执行语句。那么可以生成一个.sql文件。笔者这里命名为:CreateTable.sql
那么我们只用在cs文件中读取CreateTable.sql中的字符串即可像sql语句一样执行
StreamReader strRead = File.OpenText("D:\\CareateTable.sql"); 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(); }
那么会发现报错,就是go语句附近有错误。可以利用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文件了。
相关文章推荐
- 一起谈.NET技术,不附加数据库 ASP.NET调用.sql文件
- 不附加数据库 ASP.NET调用.“.NET研究”sql文件
- Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
- Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
- Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
- ASP.NET调用.sql文件(二“.NET研究”)
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- 【点滴】向Sql Express数据库文件中注册Asp.NET 2.0用户管理模块
- ASP.NET附加数据库文件的方式,如何发布到IIS7而不导致SQLServer出错
- ASP.NET调用.sql文件
- Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
- ASP.NET调用.sql文件(二)
- C# asp.net 配置文件连接sql 数据库
- ASP.net在母板页(.master)文件中添加对数据库的调用
- 一起谈.NET技术,ASP.NET调用.sql文件(二)
- ASP.NET调用.sql 文件[转]
- Asp.Net访问Oracle 数据库执行SQL语句和调用存储过程
- asp.net执行sql脚本,导出数据库文件到本地
- 一起谈.NET技术,ASP.NET调用.sql文件
- asp.net 2.0 的数据库的连接类(通过配置文件读连接串)