要Demo例子,不要网络连接!邮箱  [email protected]

解决方案 »

  1.   

    要Demo例子,不要网络连接!让我想起了波导的歌曲:
    “把注释写清楚,打包发到我的邮箱去!"
      

  2.   

    建立安装部署项目,在install安装类通过DirectoryEntry 操作IIS实现网站或虚拟目录的配置。
    通过执行SQL脚本配置数据库
    use master exec sp_attach_db @dbname=N'数据库名 ',@filename1=N'数据库文件地址',@filename2=N'日志文件地址'

    private void ExecuteSql(string connString,string DatabaseName,string sql)
    {
    using(SqlConnection conn=new SqlConnection(connString))
    {
    SqlCommand cmd=new SqlCommand(sql,conn);
    conn.Open();
    cmd.Connection.ChangeDatabase(DatabaseName);
    cmd.ExecuteNonQuery();
    conn.Close();
    }
    }
    string connString=string.Format("server={0};user id={1};password={2}",this.Context.Parameters["server"],this.Context.Parameters["user"],this.Context.Parameters["pwd"]);//根据输入的数据库名称建立数据库
    ExecuteSql(connString,"master","create database "+this.Context.Parameters["dbname"]);//调用osql执行脚本
    string cmd=string.Format(" -S{0} -U{1} -P{2} -d{3} -i{4}db.sql",this.Context.Parameters["server"],this.Context.Parameters["user"],this.Context.Parameters["pwd"],this.Context.Parameters["dbname"],this.Context.Parameters["targetdir"]);
    System.Diagnostics.Process sqlProcess=new Process();
    sqlProcess.StartInfo.FileName="osql.exe";
    sqlProcess.StartInfo.Arguments=cmd;
    sqlProcess.StartInfo.WindowStyle=ProcessWindowStyle.Hidden;
    sqlProcess.Start();
    sqlProcess.WaitForExit();//等待执行
    sqlProcess.Close();
      

  3.   


    sql数据库是要  写一定的代码  没学过,网上找的资料全是错的!我几乎每个都试过了!
      

  4.   

    你想把数据库打包到部署文件?
    建议使用 sqlite数据库。
    或者使用 VS集成好的 SQL Server Compact Edition
      

  5.   


    现在安装完只能实现,在数据库中有那个class的库,但是库里面却没有表生成 ?
      

  6.   

             private string GetSql(string Name)
            {
                //调用osql执行脚本            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}Class.sql", this.Context.Parameters["user"], this.Context.Parameters["pwd"], "master", this.Context.Parameters["targetdir"]);            sqlProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;            sqlProcess.Start();            sqlProcess.WaitForExit();//等待执行            sqlProcess.Close();
                try
                {
                    //    Assembly Asm = Assembly.GetExecutingAssembly(); 
                    //    System.IO.FileInfo FileInfo = new System.IO.FileInfo(Asm.Location);
                    //    string path=FileInfo.DirectoryName+@"\"+Name;
                    string path = this.Context.Parameters["targetdir"] + Name;
                    FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
                    StreamReader reader = new StreamReader(fs, System.Text.Encoding.Default);
                    //System.Text.Encoding.ASCII; 
                    return reader.ReadToEnd();
                }
                catch (Exception ex)
                {
                    Console.Write("In GetSql:" + ex.Message);
                    throw ex;
                }
            }
            private void ExecuteSql(string DataBaseName, string Sql)
            {
                SqlConnection sqlConnection1 = new SqlConnection();
                sqlConnection1.ConnectionString = string.Format("server={0}; user id={1}; password={2}; Database=master", this.Context.Parameters["server"], this.Context.Parameters["user"], this.Context.Parameters["pwd"]);
                System.Data.SqlClient.SqlCommand Command = new System.Data.SqlClient.SqlCommand(Sql, sqlConnection1);
                try
                {
                    Command.Connection.Open();
                    Command.Connection.ChangeDatabase(DataBaseName);                Command.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    Console.Write("In exception handler :" + ex.Message);
                }
                finally
                {
                    Command.Connection.Close();
                }
            }        protected void AddDBTable(string strDBName)
            {
                try
                {
                    ExecuteSql("master", "CREATE DATABASE " + strDBName);
                    ExecuteSql(strDBName, GetSql("Class.sql"));
                    ExecuteSql("master", "exec sp_addlogin 'myoamaster','myoamaster','" + strDBName + "',Null,Null");
                    ExecuteSql(strDBName, "EXEC sp_grantdbaccess 'myoamaster', 'myoamaster'");
                    ExecuteSql(strDBName, "exec sp_addrolemember 'db_owner','myoamaster'");
                }
                catch (Exception ex)
                {
                    Console.Write("In exception handler :" + ex.Message);
                }
            }
            public override void Install(System.Collections.IDictionary stateSaver)
            {
                base.Install(stateSaver);
                AddDBTable(this.Context.Parameters["dbname"]);
            }
    这个是我现在所有的代码