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

请教ADO.NET中SqlParameter类的用法

SqlParameter类:http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlparameter.aspx

SqlParameter类到底是怎么用的啊,百度,也没有好的答案

我觉得最好的讲解就是给我举个简单的例子 --------------------编程问答-------------------- string sql = "delete from [TodoMatter] where [ID]=@ID";
            SqlParameter[] sp = new SqlParameter[]
            {
                new SqlParameter("@ID",ID)
            };
            return DBHelper.ExecuteNonQuery(this.connection, CommandType.Text, sql, sp); --------------------编程问答-------------------- 简单的例子嘛:

            int Id =1;
            string Name="lui";
            cmd.CommandText="insert into TUserLogin values(@Id,@Name)";
          //上条语句中直接在sql语句中写添加的参数名,不论参数类型都是如此.
           SqlParameter  para=new SqlParameter("@Id",SqlDbType.int,4);//生成一个名字为@Id的参数,必须以@开头表示是添加的参数,并设置其类型长度,类型长度与数据库中对应字段相同
           para.Value=Id;//给参数赋值
           cmd.Parameters.Add(para);//必须把参数变量添加到命令对象中去。
           //以下类似
           para=new SqlParameter("@Name",SqlDbType.VarChar,16);
           para.Value=Name;
           com.Parameters.Add(para);
--------------------编程问答-------------------- 还是不是很明白 --------------------编程问答-------------------- 有人知道吗???? --------------------编程问答-------------------- Cmd.CommandText="delete from table where ID=@I"
SqlParameter("@I",s)
这句可以这么理解,用你程序中变量s(可以是其它任何变量名)的值,在SQL语句被执行的时候替换@I这个字符串。比如现在这个时候s是3,则SQL语句就变成
delete from table where ID=3 --------------------编程问答-------------------- 1,2的例子都可以。
当然用执行CommandText中的sql语句,可以用拼接字符串的方法。

但是如果盗用Stored Procedure,就不能用拼接字符串了,只能用SqlParameter  了。 --------------------编程问答-------------------- 就是一种方法
在程序里,
1.你可以拼SQL串 select * from userinfo where userId = 你传过来的userId

2.也可以用参数的形式(SqlParameter  ),
select * from userinfo where userId = @user;
 SqlParameter  para=new SqlParameter("@user",SqlDbType.int,4);
           para.Value=Id;
 cmd.Parameters.Add(para); --------------------编程问答-------------------- 有没有朋友能帮忙写一段稍微完整点的代码,百度了,也不知道
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,