现在有个a.sql文件,c#中怎么执行它生成数据库?

解决方案 »

  1.   

    具体方法如下(以sql server200 数据库为例):            try
                {
                    System.Diagnostics.Process pr = new System.Diagnostics.Process();
                    pr.StartInfo.FileName = "osql.exe ";
                    pr.StartInfo.Arguments = "-U sa -P sa -d master -s 127.0.0.1 -i Sql.sql";
                    pr.StartInfo.UseShellExecute = false;
                    pr.StartInfo.RedirectStandardOutput = true;  //重定向输出
                 
                    pr.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;//隐藏输出窗口
                    pr.Start();
                    
                    System.IO.StreamReader sr = pr.StandardOutput;
                    Console.WriteLine(sr.ReadToEnd());
       
                    pr.WaitForExit();
                    pr.Close();
                }
                catch(Exception err)
                {
                    MessageBox.Show(err.ToString());
                }以下是osql的一些参数用法:用法: osql                   [-U 登录 ID]          [-P 密码]
      [-S 服务器]                [-H 主机名]           [-E 可信连接]
      [-d 使用数据库名称]        [-l 登录超时值]       [-t 查询超时值]
      [-h 标题]                  [-s 列分隔符]         [-w 列宽]
      [-a 数据包大小]            [-e 回显输入]         [-I 允许带引号的标识符]
      [-L 列出服务器]            [-c 命令结束]         [-D ODBC DSN 名称]
      [-q "命令行查询"]          [-Q "命令行查询" 并退出]
      [-n 删除编号方式]          [-m 错误级别]
      [-r 发送到 stderr 的消息]  [-V 严重级别]
      [-i 输入文件]              [-o 输出文件]
      [-p 打印统计信息]               [-b 出错时中止批处理]
      [-X[1] 禁用命令,[退出的同时显示警告]]
      [-O 使用旧 ISQL 行为禁用下列项]------------------------------------
    如果是sql2005数据库用sqlcmd
    ------------------------------------
    另外:http://zhidao.baidu.com/question/66207860.html
      

  2.   

    string sql="读取txt得到的字符串"
    ExecuteNonQuery()
      

  3.   

    pr.StartInfo.Arguments = "-U sa -P sa -d master -s 127.0.0.1 -i Sql.sql";这个可以用windows的登陆吗,因为sa未必能用
      

  4.   

    System.Diagnostics.Process sqlProcess = new System.Diagnostics.Process();
    sqlProcess.StartInfo.FileName = "osql.exe";
    sqlProcess.StartInfo.Arguments = string.Format(" -U {0} -P {1} -d {2} -i {3}/db.sql", this.Context.Parameters["user"], this.Context.Parameters["pwd"], this.Context.Parameters["dbname"], this.Context.Parameters["targetdir"]);
    sqlProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    sqlProcess.Start();
    sqlProcess.WaitForExit(); 
      

  5.   

    写一个批处理.bat文件,批处理调用SQL文件,然后C#执行这个批处理。