普通的sql语句可以进行(数据部分)参数化编程,不是只有存储过程才有参数。

解决方案 »

  1.   

    随便搜一下:http://www.cnblogs.com/lzrabbit/archive/2012/04/21/2460978.htmlhttp://zh.wikipedia.org/wiki/%E5%8F%83%E6%95%B8%E5%8C%96%E6%9F%A5%E8%A9%A2
      

  2.   

    大神,能加一个qq吗?求帮助。我貌似现在的理解很有问题(纯自学的。)
    我现在的理解是是假如有个变量a=textbox1.text             b=textbox2.text
    sqlStr="insert into Person(Age,Name) values(“+ a +","+ b + ");"这个样子的。为什么是@Age,@Name(这两个东西的数值是哪里来的呢?
      

  3.   

    多看看 SqlHelper 吧,这个不是系统自带的类型,楼主从哪下载的
      

  4.   

    SQL和C#分别是两种语言,分开学。要有耐心。
      

  5.   

    参数代的问题,楼主百度一下sqlparamater就行了。
      

  6.   


    sql参数化 可以 度娘 一下
      

  7.   

    @变量是sql的写法,跟C#没关系,要区分开来学习
      

  8.   

     new SqlParameter("Age", model.Age), new SqlParameter("Name", model.Name));在这里就定义了sql中需要用到的@Age,@Name 变量。
      

  9.   

    加@是SQL中的传参方式,不加@表明它本身是一个字段,而不是一个参数变量,和C#传参类似:
    C#: public void Change(int a,int b)
     {
                    int c=a+b;
                    Console.WriteLine(c);
     }
    SQL: declare @a int 
                 select *  from Table where id=@a
      

  10.   

    new SqlParameter("Age", model.Age)

    new SqlParameter("@Age", model.Age)是等价的,你自己可以实验下,SqlParameter会自动帮你把@给补全
      

  11.   

    不用觉得难以理解,它就代表一个变量,但需外部赋值。参数化编程可防止sql注入,而不是拼接sql
      

  12.   

    你这样写可以,但有风险,假如我在textbox1.text放进一些破坏性代码,你系统就完了,但用@age,是个参数,外面赋值给它都作为一个标量值,而不是可执行语句。