求救,一个关于 SqlParameter参数的问题
下面是执行SQL语句的代码 一个方法体public static int ExecuteNonQuery(string cmdText,
params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = cmdText;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteNonQuery();
}
}
}
-----------------------------------------------------这个是执行代码的语句-----------------------------
public int ExcutQury(string order)
{
int i = SqlHelper.ExecuteNonQuery(
"CREATE TABLE @NameTable
(id int IDENTITY(1,1) ,
StudentID varchar(50) default NULL,
StName varchar(60) default NULL,
Sex varchar(2) default NULL,
Profession varchar(50) default NULL,
ClassID int default NULL,
primary key(id))",
new SqlParameter("NameTable", order));
——————【这里是重点 无法替换前面SQL语句的@NameTable】————
order参数传入正确!! 但是在创建数据库表的时候还是出现@NameTable附近出现错误!!
return i;
}
求大神帮忙解决 无语中!!
还有SQL语句正确的!! SQL C# SqlParameter 数据库 命令提示符 --------------------编程问答-------------------- 参数可以这么用?这可不是字符串拼接啊 --------------------编程问答-------------------- 是啊。胡写sql语句,就不用考虑Parameter问题了。先学好t-sql语句,自己研究一下能不能写什么@Name这种东西。 --------------------编程问答--------------------
说它是正确的,你要拿出证据。没有证据之前,千万不要养成一个错误的“套用”习惯。
另外参数化的sql语句可以直接在sql server的查询分析器上直接执行的,它会自动产生一个界面让你输入那些参数值,然后执行。你可以看看你的语句能不能被它认识。 --------------------编程问答--------------------
use [study]
go
create proc usp_test
(
@NameTable nvarchar(20)
)
as
begin
declare @sql nvarchar(max);
set @sql='CREATE TABLE ' + @NameTable + '(id int IDENTITY(1,1) ,StudentID varchar(50) default NULL)'
exec sp_executesql @sql,N'@NameTable nvarchar(20)',@NameTable
end
exec usp_test 'aa'
--------------------编程问答-------------------- sorry,请去掉
static void Main(string[] args)
{
using (SqlConnection conn = new SqlConnection(@"Data Source=.;Initial Catalog=study;Integrated Security=True"))
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "usp_test";
cmd.Parameters.Add("@NameTable",SqlDbType.NVarChar).Value ="helloworld";
conn.Open();
cmd.ExecuteNonQuery();
}
}
}
exec usp_test 'aa'
这一句。这是用来测试的
补充:.NET技术 , C#