• 一起谈.NET技术,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文件了。

  • 相关阅读:
    敏捷开发模式下的质量管理
    杨学明老师软件测试管理公开课将于2012年11月16日~17日在北京举办!
    杨学明老师为南京某机电企业成功举办两天IPD DRY RUN !
    软件测试管理公开课在北京成功举办!
    2012年12月4至6日,杨学明老师为中国科学院某研究所举办两天的软件项目管理和测试管理培训!
    杨老师“软件测试管理”公开课在北京成功举办!
    软件测试为什么失败?
    如何实现高效的产品测试管理杨学明
    杨学明老师软件测试管理公开课将于2012年9月21~22日在深圳举办!
    2011年9月23《软件测试管理》公开课,接受报名!
  • 原文地址:https://www.cnblogs.com/waw/p/2163171.html
Copyright © 2020-2023  润新知