我现在想在执行依据sql语句的时候将我执行完成后的那行结果返回回来
   比如:   我insert  一条数据是这样的    1,2,3,4,5
   我想我的insert执行完毕后返回一行1,2,3,4,5     
cmd.CommandText = "insert into d_device ([device],[type],[online],[ip],[up_time]) values (" + "'" + ID + "'" + "," + "'" + ID[0] + "'" + ",1," + "'" + ip +  "'" + ",getdate() )";
                        SqlDataReader sqlreader1 = cmd.ExecuteReader();
                        sqlreader1.Read();
我就是想在sqlread1中返回我刚插入的那一行!!!

解决方案 »

  1.   

    你SQL是什么版本的?如果支持OUTPUT,那就简单多了。
    insert into d_device (......)
    OUTPUT INSERTED.*
    values (......)
      

  2.   

    你可以把insert语句放在一个string型字符串啊,执行了之后提取字符串中的值就行了撒。
      

  3.   

    获取自增长很简单,在insert语句后面先加个封号,然后执行“SELECT SCOPE_IDENTITY()”即可
      

  4.   

    要么重新查询一遍,要么你用rows.ADD然后update方法,后再过滤datatable。
      

  5.   

    public int Add(Mcg_lb.Model.tg_shstate model)
    {
    StringBuilder strSql=new StringBuilder();
    strSql.Append("insert into tg_shstate(");
    strSql.Append("shname)"); strSql.Append(" values (");
    strSql.Append("@shname)");
    strSql.Append(";select @@IDENTITY");
    Database db = DatabaseFactory.CreateDatabase();
    DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());
    db.AddInParameter(dbCommand, "shname", DbType.String, model.shname);
    int result;
    object obj = db.ExecuteScalar(dbCommand);
    if(!int.TryParse(obj.ToString(),out result))
    {
    return 0;
    }
    return result;
    }这个resulr就是返回的自增长的主键id,你试试吧
      

  6.   

    result,呵呵,大错了,主键都返回了,这一行数据不难了吧
      

  7.   

    你可以使用OUTPUT啊。这样可以把你输入的数据给输出来!
      

  8.   

           string sql = "Insert into Users(Names,Address,Pid) values('" + name + "','" + address + "'," + pid + ");SELECT * from Users where PID="+pid+"";
                comm.Connection = con;
                comm.CommandText=sql;
                con.Open();
                SqlDataReader srd = comm.ExecuteReader();
                DataTable dat = new DataTable();
                dat.Load(srd);
      

  9.   

            public DataTable InsertSql(string name,int pid,string address)
            {            string sql = "Insert into Users(Names,Address,Pid) values('" + name + "','" + address + "'," + pid + ");SELECT * from Users where PID="+pid+"";
                comm.Connection = con;
                comm.CommandText=sql;
                con.Open();
                SqlDataReader srd = comm.ExecuteReader();
                DataTable dat = new DataTable();
                //dat.Load(srd);
                dat = dt.Tables[0].Clone();
                DataRow dr = null;
                while (srd.Read())
                {
     
                        dr = dat.NewRow();
                        if (pid.CompareTo(srd["pid"])==0)
                        {
                            dr["pid"] = srd["pid"];
                            dr["Names"] = srd["Names"];
                            dr["Address"] = srd["Address"];
                            dat.Rows.Add(dr);
                        }
                }
                con.Close();
                return dat;
            }