首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

sql中SqlParameter的用法解决办法

2013-10-11 
sql中SqlParameter的用法比如像这样的:public DataTable CheckSMRepeat(string strSM){string sql SELE

sql中SqlParameter的用法
比如像这样的:


public DataTable CheckSMRepeat(string strSM)
        {
            string sql = "SELECT * from TableA where SM='"+strSM+"'";
            DataTable dt = SqlHelperService.ExecuteQuery(sql);
            return dt;
        }

public static DataTable ExecuteQuery(string sql)
        {
            GetConn();
            SqlDataAdapter sda = new SqlDataAdapter(sql, _Conn);//数据库适配器
            DataSet ds = new DataSet();//内存数据库
            sda.Fill(ds);//将查询结果填充到内存数据库
            return ds.Tables[0];
        }

我想用SqlParameter给查询语句赋值,应该要如何修改呢 SqlParameter sql
[解决办法]
http://www.cnblogs.com/sjrhero/articles/1865220.html
[解决办法]
refer,这是oracle的,你得修改一下:(oracle参数的写法)或者@(sqlserver参数的写法).
/// <summary>
        /// 是否存在该记录
        /// </summary>
        public bool Exists(string USERGROUPCODE, string USERGROUPNAME, string GROUPCOMMENT, string USERGROUPPARENT)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select count(1) from T_SYSGROUP");
            strSql.Append(" where USERGROUPCODE=:USERGROUPCODE and USERGROUPNAME=:USERGROUPNAME and GROUPCOMMENT=:GROUPCOMMENT and USERGROUPPARENT=:USERGROUPPARENT ");
            OracleParameter[] parameters = {
new OracleParameter(":USERGROUPCODE", OracleType.VarChar,20),
new OracleParameter(":USERGROUPNAME", OracleType.VarChar,50),
new OracleParameter(":GROUPCOMMENT", OracleType.VarChar,500),
new OracleParameter(":USERGROUPPARENT", OracleType.VarChar,20)};
            parameters[0].Value = USERGROUPCODE;
            parameters[1].Value = USERGROUPNAME;
            parameters[2].Value = GROUPCOMMENT;
            parameters[3].Value = USERGROUPPARENT;

            return OracleHelper.Exists(strSql.ToString(), parameters);
        }

[解决办法]
你一点基础都没有,不应该直接拿什么SqlHelp来用,那是自欺欺人的行为。
参考:http://msdn.microsoft.com/ZH-CN/library/vstudio/system.data.sqlclient.sqlcommand.parameters(v=vs.110).aspx
把最基本的参数化查询过程搞清楚,学会使用SqlCommand的各种方法,学会处理各种Sql异常,SqlHelp只是提高编码效率的存在,而不是神器,什么都不懂的情况下去用封装好的方法,出点错误就摸不着头绪,事倍功半。

热点排行