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

解决方案 »

  1.   

      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");
      

  2.   

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

  3.   

    where @a=@b
    楼主我觉得你的思路有问题。。
    按你所说,学院和专业肯定是一个字段,例如type 类型 那选了学院就是where type=@type
    那学院和专业的名称肯定也是一个字段吧,那按名称搜索也是where name=@name 吧
    为什么@a会放在左边。
      

  4.   

    如果按你说的where name=@name ,那只能是按名字查找,我的意思是可以根据用户需要:按专业查找和按学院查找。
      

  5.   

    看来无图无真相啊,我想各位还是不大明白我具体说什么,下面图片解释吧:上图是一个以xsd后缀的数据集文件中添加的表,然后对添加的表做“添加查询”操作,得图如下:此图说明可以插入查询语句或者存储过程,但是我存储过程还没会用,更别说在这里使用了。
    下图是查询语句的填充:在这里,应该不能放入什么字符串格式拼接之类的。
      

  6.   

    所幸的我在上面的数据集的后台代码cs文件中找到了关键代码:
            private void InitCommandCollection() {
                this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1];
                this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand();
                this._commandCollection[0].Connection = this.Connection;
                this._commandCollection[0].CommandText = "SELECT 课程, 专业名 FROM dbo.course";
                this._commandCollection[0].CommandType = global::System.Data.CommandType.Text;
            }
    我相信正确修改了以下的这句后就可以达到目的:
    this._commandCollection[0].CommandText = "SELECT 课程, 专业名 FROM dbo.course";
    但不知具体如何
      

  7.   

    那么多人都不知道楼主说什么就...
    我刚接触C#的时候,想使用dataGridView控件,发现里面有个条件查询,然后也想用,但是最后只能放弃,因为它自己生成的条件语句要提前设定好,查询的列条件不能动态更改,要先指定列……后面自己想可以多设定几个查询方法,通过判断ListBOX的值调用相应的方法,但是后来觉得这个也低效,还不如自己拼接生成查询语句方便……