+ -
当前位置:首页 → 问答吧 → ASP.NET的数据集的fill,getdata

ASP.NET的数据集的fill,getdata

时间:2011-12-12

来源:互联网

我想在数据集中的fill,getdata方法中执行以下查询:
select*from major 
 where @a=@b
其中@a和@b都是变量,但是这样用被证明是错的——变量不能放等号左边。
但实际情况很多需要这样用呀,比如,按输入的条件查询:有两个文本框,左边的放约束,右边的放值。一个表中有学院和专业两个属性,那是按学院选择呢,还是按照专业选择,那就看左边的文本框输入的是学院还是专业,如果是学院,那右边的就输入管理学院之类的就可以查询出属于管理学院的所有元组了。
这问题卡了很久了,原因不是因为没找到可以有此功能的SQL语句块,而是因为找到的都不能在数据集中正确添加,还请大神相救啊。
补充一下:如果代码添加数据集select*from major where textbox1.text=textbox2.text那执行结果是没有问题的,但现在是用鼠标(非代码)添加的数据集,需要先保存查询语句,才确定变量源的。

作者: shnaying1945   发布时间: 2011-12-12

用拼接sql字符串就不会有这个问题

作者: myhope88   发布时间: 2011-12-12

引用 1 楼 myhope88 的回复:
用拼接sql字符串就不会有这个问题

怎么个拼接?

作者: shnaying1945   发布时间: 2011-12-12

C# code
  StringBuilder strSql = new StringBuilder();
            strSql.Append("insert into IWT_Admin(");
            strSql.Append("Admin_Name,Admin_RealName,Admin_Pwd,Admin_State,Admin_Grade)");
            strSql.Append(" values (");
            strSql.Append("@Admin_Name,@Admin_RealName,@Admin_Pwd,@Admin_State,@Admin_Grade)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters = {
                    new SqlParameter("@Admin_Name", SqlDbType.VarChar,50),
                    new SqlParameter("@Admin_RealName", SqlDbType.VarChar,50),
                    new SqlParameter("@Admin_Pwd", SqlDbType.VarChar,50),
                    new SqlParameter("@Admin_State", SqlDbType.TinyInt,1),
                    new SqlParameter("@Admin_Grade", SqlDbType.Int)};
            parameters[0].Value = model.Admin_Name;
            parameters[1].Value = model.Admin_RealName;
            parameters[2].Value = model.Admin_Pwd;
            parameters[3].Value = model.Admin_State.ToString("D");
            parameters[4].Value = model.Admin_Grade.ToString("D");

作者: haa17   发布时间: 2011-12-12

用字符串格式化
 string sql=string .Format("select * from major where {0}={1}",参数1,参数2);
这个样子就可以了呀,简单方便!

作者: wangxinlong_   发布时间: 2011-12-12