CREATE PROCEDURE NEWDATABASE
(
 @dbname varchar(200), --数据库的名称
 @rdbname varchar(200)
)
AS
   exec('Create DataBase '+@dbname)
   exec('use '+@rdbname+';select * into '+@dbname+'..R_Category from(select top 100 percent * from R_Category)a')
go
其中@dbname为新建数据库名字。 @rdbname为数据库源名
存储过程的操作是通过用户输入参数 创建新数据库,然后复制 数据库源下的R_Category 表结构和所有内容。然后我建个winform应用程序,不知道如何调用这个存储过程以及传参
这是我 创建的一个类:
                 public void procName11(string dbname,string rdbname)
{
SqlParameter[] param = new SqlParameter[2]; param[0]=new SqlParameter("@dbname", SqlDbType.NVarChar,200);
param[0].Value = dbname;param[1]=new SqlParameter("@rdbname", SqlDbType.NVarChar,200);
param[1].Value = rdbname;
}
然后我就不知道怎么写了。。请教高手帮忙解答。!!!急
这个是他窗体连接数据库代码:
SqlConnection con = new SqlConnectio("server=.;uid="+this.txtid.Text+";pwd="+this.txtpwd.Text+";database="+this.txtrs.Text+";");连接数据库的用户名和密码全是未知的,只有用户在安装的时候输入新数据库名,数据库源 用户名和密码,才能创建新数据库请教高手~~~~~~~~~~~急~~~~~~~谢谢

解决方案 »

  1.   

    在你建立了一个sqlconnection之后,就可以给到一个command了sqlcommand comm = new sqlcommand("NEWDATABASE", con);
    comm.commandtype = commandtype.storedprocedure;
    comm.parameters.add(new SqlParameter("@dbname", SqlDbType.NVarChar,200));
    comm.parameters.add(new SqlParameter("@rdbname", SqlDbType.NVarChar,200));comm.parameters[0].value = dbname;
    comm.parameters[1].value = rdbname;comm.executenoquery();
      

  2.   

    当然,还要先打开你的连接,con.open();
    用完之后还要close();
      

  3.   

    首先你得建个COMMAND连接命令吧,SqlCommand cm=new SqlCommand("存储过程的名字--NEWDATABASE",cn);
    cm.CommandType=CommandType.StoredProcedure;
    完了后面的就安装你那么写,最后执行一下COMMAND的cm.ExecuteQuery();
    先试试吧。