标题:代码安装sql server数据库,怎么解决!
只看楼主
恋雪怜冰
Rank: 1
来 自:苏州
等 级:新手上路
帖 子:84
专家分:2
注 册:2010-3-11
结帖率:100%
已结贴  问题点数:20 回复次数:5 
代码安装sql server数据库,怎么解决!
现在做完了一个c#项目 想刻盘
现在遇到的问题是如果用光盘安装程序,如何点击安装程序时,自动安装数据库并建表。
如何在程序中用代码写数据库安装程序。
麻烦请写详细步骤。谢谢!!!!!
搜索更多相关主题的帖子: 数据库 sql server 代码 
2010-12-01 14:59
筱晓绾
Rank: 10Rank: 10Rank: 10
来 自:湖南
等 级:贵宾
威 望:12
帖 子:512
专家分:1736
注 册:2010-9-1
得分:20 
将创建数据库及数据表的脚本与程序通过项目打包程序来打包处理,安装程序的时候就可以自动创建数据库.创建数据库与表的脚本相信LZ会写,指定存储路径.
2010-12-01 15:03
恋雪怜冰
Rank: 1
来 自:苏州
等 级:新手上路
帖 子:84
专家分:2
注 册:2010-3-11
得分:0 
using System;
using System.Collections.Generic;
using
using System.Configuration.Install;
using System.Data;
using System.Data.SqlClient;
namespace InstallDB   
{   
[RunInstaller( true )]   
public partial class InstallerDB : Installer   {
  public InstallerDB()   {
          InitializeComponent();  
    }  
  private void CreateDataBase( string strSql, string DataName, string strMdf, string strLdf, string path, string strSql1)   {
     #region ### 附加数据库  
         String str;
         SqlConnection myConn = new SqlConnection(strSql);
         str = " EXEC sp_attach_db @dbname = ' " + DataName + " ', @filename1 = ' " + strMdf + " ',@filename2= ' " + strLdf + " ' ";   
         SqlCommand myCommand = new SqlCommand(str, myConn);  
          myConn.Open();  
          myCommand.ExecuteNonQuery();   
          #endregion   #region ###新建数据库用户的登陆名和密码(登陆名:admin 密码:123)
          string str2 = " exec sp_addlogin 'admin','123' " + " " + " use " + DataName + "" + " " + " exec sp_adduser 'Eric' " + " " + " exec sp_addrolemember 'db_owner','Eric' " ;  
        SqlCommand cmd2 = new SqlCommand(str2, myConn);  
        cmd2.ExecuteNonQuery();   
        myConn.Close();  
        #endregion   #region ###把用户安装路径存入数据库  
        SqlConnection cn = new SqlConnection(strSql1);
        string str3 = " insert into T_DataPath (DataPath) values(' " + path + " ') " ;
        cn.Open();
        SqlCommand cmd3 = new SqlCommand(str3, cn);   
        cmd3.ExecuteNonQuery();
        cn.Close();
        #endregion  
      }
       public override void Install(System.Collections.IDictionary stateEricver)   {
          string server = this .Context.Parameters[ " server " ];
          string uid = this .Context.Parameters[ " user " ];  
          string pwd = this .Context.Parameters[ " pwd " ];  
          string path = this .Context.Parameters[ " targetdir " ];  
          string strSql = " server= " + server + " ;uid= " + uid + " ; pwd= " + pwd + " ;database=master " ;  
          string strSql1 = " server= " + server + " ;uid= " + uid + " ; pwd= " + pwd + " ;database=Library " ;
          string DataName = " Library " ;  
          string strMdf = path + " \\textilerails_development.MDF "; // + @"\" + "+textilerails_development.mdf+";  
          string strLdf = path + " \\textilerails_development.LDF "; // +@"\" + "+textilerails_development.ldf+";  
          base .Install(stateEricver);   
          this .CreateDataBase(strSql, DataName, strMdf, strLdf,path,strSql1);
        // 调用上面的方法  
         }  
     }
 }
2010-12-01 15:15
恋雪怜冰
Rank: 1
来 自:苏州
等 级:新手上路
帖 子:84
专家分:2
注 册:2010-3-11
得分:0 
这样写可以吗
但我不知道怎么用啊
2010-12-01 15:15
筱晓绾
Rank: 10Rank: 10Rank: 10
来 自:湖南
等 级:贵宾
威 望:12
帖 子:512
专家分:1736
注 册:2010-9-1
得分:0 
额 (⊙o⊙)… 脚本....
2010-12-01 15:18
恋雪怜冰
Rank: 1
来 自:苏州
等 级:新手上路
帖 子:84
专家分:2
注 册:2010-3-11
得分:0 
不然怎么写
可以给具体步骤吗?
2010-12-01 15:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-327509-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035695 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved