日期:2014-05-18  浏览次数:20425 次

关于参数化查询的问题
C# code
string qry = "INSERT INTO tblUser values(@name, @pwd, @roleID, @status, @memo)";

            using (SqlConnection conn = SQLHelper.GetConnection())
            {
                try
                {
                    SqlCommand cmd = new SqlCommand(qry, conn);
                    cmd.Parameters.Add("@name", SqlDbType.NVarChar);
                    cmd.Parameters["@name"].Value = user.LoginName;


这是一个片段,这样我会用,但如果查询语句里需要用 LIKE 关键字应该怎么加参数??下面又暂时采用的方法,请问有更好的方法没?

C# code
StringBuilder sb = new StringBuilder();
            SqlCommand cmd = new SqlCommand();

            sb.Append("SELECT * FROM tblUser WHERE 1=1");

            if (user != null)
            {              
                if (!String.IsNullOrEmpty(user.LoginName))
                {
                    string name = user.LoginName;   // [color=#FF0000]我在这里先声明了一个临时变量,暂时只会这么做,有更好的方法吗?[/color]
                    sb.Append(" and tu_LoginName LIKE '%" + @name + "%'");
                    cmd.Parameters.Add("@name", SqlDbType.VarChar);
                    cmd.Parameters["@name"].Value = user.LoginName;
                }


------解决方案--------------------
用SQL变量的方式就是这样的!已经很正统了!