从表中选择,然后将(值+ 1)插入另一个表中?

时间:2013-03-05 19:39:10

标签: c# asp.net select insert dataset

感谢您查看我的问题。希望我能得到答案。我有一个C#项目。我试图从表中获取IF字段。一旦我有了这些数据,我想将值增加1.(例如,我抓住10000,并添加1使其成为10001.)然后,我想将增加的值输入到另一个表中。

这是我到目前为止(只有选择查询):

cmd = new SqlCommand("select reqID from [RequestID] where (ID = 1)", con);

我尝试过使用DataSet而没有任何进展。我不太熟悉编码,但是尝试!

DataSet ds = new DataSet();
myDA1.Fill(ds, "RequestID");
Int64 RequestID = default(Int64);
RequestID = ds.Table("RequestID").Rows(0).Item("ReqID");
RequestID += 1;

任何帮助将不胜感激!

约什

4 个答案:

答案 0 :(得分:4)

跑步:

INSERT INTO yourOtherTable ( reqId ) 
SELECT reqID + 1 
FROM RequestID

答案 1 :(得分:0)

您是否尝试从SQL中的表中获取值?

如果是这样,您可能不需要使用数据集,只需要从SQL中读取值。

MSDN article on Ado.Net

使用SqlDataReader获取值后,可以递增它并重新插入。

Simple CRUD operations using Ado.Net

答案 2 :(得分:0)

只需更改

即可

样品

string sql1 = string.Format(@"select reqID from [RequestID] where (ID = 1)");
        SqlDataAdapter da1 = new SqlDataAdapter(sql1, con);
        DataSet ds1 = new DataSet();
        con.Open();
        da1.Fill(ds1);
        RequestID = ds.Table[0]["RequestID"];

答案 3 :(得分:0)

为什么不在SQL中增加值?这种事情真的很擅长。根据您想要的结果,您可以做这样的事情。

cmd = new SqlCommand("select reqID + 1 as reqID from [RequestID] where (ID = 1)", con);
con.Open();
List<int> requestIds = new List<int>();
using(SqlDataReader reader = cmd.ExecuteReader()){
  while(reader.Read()){
    requestIds.Add(reader.GetInt32(0));
  } 
}
return requestIds;  // I find that Lists are much easier to work with 
// than DataTables, particularly for novices.

如果您想要更明确的内容,那么

    requestIds.Add(reader.GetInt32(0));

可以修改为:

    requestIds.Add(reader.GetInt32(0) + 1);

让你离开查询一样。

编辑:由于评论而修改的回复:

  

感谢您的回复。我想将该值输入到另一个表中,但我将添加“稍后”的值,以及最终用户将输入的所有其他数据。