当前位置:编程学习 > C#/ASP.NET >>

求救,一个关于 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这种东西。 --------------------编程问答--------------------
引用 楼主 u010392023 的回复:
还有SQL语句正确的!! 

说它是正确的,你要拿出证据。没有证据之前,千万不要养成一个错误的“套用”习惯。

另外参数化的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'



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();
                }
            }
          

        }
--------------------编程问答-------------------- sorry,请去掉 
exec usp_test 'aa'
这一句。这是用来测试的
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,