ASP.NET调用.sql文件

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

 

 

 

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

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

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

然后选择任务的生成脚本

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

首先这里只选择表,因为仅仅是需要表的执行语句。那么可以生成一个.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文件了。

posted @   胡佳180815  阅读(7969)  评论(47编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2009-11-17 电子商务之数据库分析(二)
点击右上角即可分享
微信分享提示