sql中SqlParameter的用法

Mic_Gary 2013-10-10 10:14:10
比如像这样的:

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给查询语句赋值,应该要如何修改呢
...全文
643 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
全栈极简 2013-10-10
  • 打赏
  • 举报
回复
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);
        }
Mic_Gary 2013-10-10
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
http://www.cnblogs.com/sjrhero/articles/1865220.html
一定要这样用吗,如果直接把SqlParameter中的值传到string中不行吗?
qldsrx 2013-10-10
  • 打赏
  • 举报
回复
你一点基础都没有,不应该直接拿什么SqlHelp来用,那是自欺欺人的行为。 参考:http://msdn.microsoft.com/ZH-CN/library/vstudio/system.data.sqlclient.sqlcommand.parameters(v=vs.110).aspx 把最基本的参数化查询过程搞清楚,学会使用SqlCommand的各种方法,学会处理各种Sql异常,SqlHelp只是提高编码效率的存在,而不是神器,什么都不懂的情况下去用封装好的方法,出点错误就摸不着头绪,事倍功半。
Mic_Gary 2013-10-10
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
http://www.cnblogs.com/sjrhero/articles/1865220.html
引用 3 楼 guwei4037 的回复:
为什么在调用这个方法的时候抛出这样的错误:Fill: SelectCommand.Connection 属性尚未初始化。

public static DataTable getDateTable(string sqlString, SqlParameter[] parms)
        {
            GetConn();
            DataTable dt = new DataTable();
            SqlCommand cmd = new SqlCommand(sqlString);
            if (parms != null)
            {
                foreach (SqlParameter p in parms)
                {
                    cmd.Parameters.Add(p);
                }
            }
            using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
            {
                sda.Fill(dt);
                cmd.Parameters.Clear();
            }
            return dt;
        }
或者给个利用SqlParameter返回datatable类型的sqlhelp也行

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧