我才学用存储过程,还不太懂这个怎么用。大家给我看看有什么毛病。
我的存储过程如下:
CREATE PROCEDURE dbo.car_Table@TableName AS VARCHAR(50)
AS
BEGIN
CREATE TABLE [dbo].[@TableName] (
[stu_id] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[stu_name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[stu_ping] [decimal](18, 0) NULL ,
[stu_qi] [decimal](18, 0) NULL ,
[stu_exp] [decimal](18, 0) NULL ,
[stu_last] [decimal](18, 0) NULL ,
[stu_total] [decimal](18, 0) NULL
) ON [PRIMARY]
END
GO我的程序代码为:
private void button2_Click(object sender, System.EventArgs e)
{
SqlConnection con=DBcon.CreateCon();
con.Open();
SqlCommand cmd=new SqlCommand("cre_Table",con);
cmd.CommandType=CommandType.StoredProcedure;
// SqlParameter param;
//cmd.Parameters.Add("@TableName",System.Data.SqlDbType.VarChar);
cmd.Parameters.Add("@TableName",SqlDbType.VarChar);
cmd.Parameters["@TableName"].Value=textBox1.Text;
cmd.ExecuteNonQuery();
MessageBox.Show("ok");
}
不过这里每次通过textbox1传入的表名都没有传到存储过程中,每次都建立的是@TableName这个表但我想建立的是以textbox1的内容为表名的表。是不是我传的方法不对???
我的存储过程如下:
CREATE PROCEDURE dbo.car_Table@TableName AS VARCHAR(50)
AS
BEGIN
CREATE TABLE [dbo].[@TableName] (
[stu_id] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[stu_name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[stu_ping] [decimal](18, 0) NULL ,
[stu_qi] [decimal](18, 0) NULL ,
[stu_exp] [decimal](18, 0) NULL ,
[stu_last] [decimal](18, 0) NULL ,
[stu_total] [decimal](18, 0) NULL
) ON [PRIMARY]
END
GO我的程序代码为:
private void button2_Click(object sender, System.EventArgs e)
{
SqlConnection con=DBcon.CreateCon();
con.Open();
SqlCommand cmd=new SqlCommand("cre_Table",con);
cmd.CommandType=CommandType.StoredProcedure;
// SqlParameter param;
//cmd.Parameters.Add("@TableName",System.Data.SqlDbType.VarChar);
cmd.Parameters.Add("@TableName",SqlDbType.VarChar);
cmd.Parameters["@TableName"].Value=textBox1.Text;
cmd.ExecuteNonQuery();
MessageBox.Show("ok");
}
不过这里每次通过textbox1传入的表名都没有传到存储过程中,每次都建立的是@TableName这个表但我想建立的是以textbox1的内容为表名的表。是不是我传的方法不对???
--存储过程如下-------------开始
@TableName AS VARCHAR(50)
AS
BEGIN
DECLARE
@sql NVARCHAR(4000)
SET @sql='CREATE TABLE [dbo].['+@TableName+'] (
[stu_id] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[stu_name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[stu_ping] [decimal](18, 0) NULL ,
[stu_qi] [decimal](18, 0) NULL ,
[stu_exp] [decimal](18, 0) NULL ,
[stu_last] [decimal](18, 0) NULL ,
[stu_total] [decimal](18, 0) NULL
) ON [PRIMARY]'EXEC (@sql)END
GO
-----------------结束
--可以在查询分析器中用如下语句测试
exec dbo.car_Table 'cre_Table'
--存储过程如下-------------开始
@TableName AS VARCHAR(50)
AS
BEGIN
DECLARE
@sql NVARCHAR(4000)
SET @sql='CREATE TABLE [dbo].['+@TableName+'] (
[stu_id] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[stu_name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[stu_ping] [decimal](18, 0) NULL ,
[stu_qi] [decimal](18, 0) NULL ,
[stu_exp] [decimal](18, 0) NULL ,
[stu_last] [decimal](18, 0) NULL ,
[stu_total] [decimal](18, 0) NULL
) ON [PRIMARY]'EXEC (@sql)END
GO
-----------------结束
--可以在查询分析器中用如下语句测试
exec dbo.car_Table 'cre_Table'
@TableName AS VARCHAR(50)
AS
BEGIN
DECLARE
@sql NVARCHAR(4000)
SET @sql='CREATE TABLE [dbo].['+@TableName+'] (
[stu_id] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[stu_name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[stu_ping] [decimal](18, 0) NULL ,
[stu_qi] [decimal](18, 0) NULL ,
[stu_exp] [decimal](18, 0) NULL ,
[stu_last] [decimal](18, 0) NULL ,
[stu_total] [decimal](18, 0) NULL
) ON [PRIMARY]'EXEC (@sql)END
GO
-----------------结束
--可以在查询分析器中用如下语句测试
--exec dbo.car_Table 'cre_Table'
@TableName AS VARCHAR(50)
AS
BEGIN
DECLARE
@sql NVARCHAR(4000)
SET @sql='CREATE TABLE [dbo].['+@TableName+'] (
[stu_id] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[stu_name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[stu_ping] [decimal](18, 0) NULL ,
[stu_qi] [decimal](18, 0) NULL ,
[stu_exp] [decimal](18, 0) NULL ,
[stu_last] [decimal](18, 0) NULL ,
[stu_total] [decimal](18, 0) NULL
) ON [PRIMARY]'EXEC (@sql)END
GO
-----------------结束
--可以在查询分析器中用如下语句测试
--exec dbo.car_Table 'cre_Table'