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

C# 从表中选择,然后将该(值+1)插入另一个表?,c#,asp.net,select,insert,dataset,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

谢谢你看我的问题。希望我能得到答案。我有一个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;
任何帮助都将不胜感激

乔希

快跑:

INSERT INTO yourOtherTable ( reqId ) 
SELECT reqID + 1 
FROM RequestID
只需运行:

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

您正在尝试从SQL中的表中获取值吗

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

使用SqlDataReader获得值后,可以增加值并重新插入


您正在尝试从SQL中的表中获取值吗

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

使用SqlDataReader获得值后,可以增加值并重新插入

改变一下这个

样品

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"];
改变一下这个

样品

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

为什么不在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) + 1);
让查询保持不变

编辑:由于注释而修改的响应:


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


为什么不在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) + 1);
让查询保持不变

编辑:由于注释而修改的响应:


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


谢谢你的回复。我运行了那个查询,但是我没有把值放到另一个表中。这就是我所做的:cmd=newsqlcommandinsert-into[Transactions]ReqID从[RequestID]中选择ReqID+1,con;我还添加了一个WHERE子句,没有任何更改。好吧,您必须执行它。cmd.ExecuteNonQuery;谢谢你的回复。我运行了那个查询,但是我没有把值放到另一个表中。这就是我所做的:cmd=newsqlcommandinsert-into[Transactions]ReqID从[RequestID]中选择ReqID+1,con;我还添加了一个WHERE子句,没有任何更改。好吧,您必须执行它。cmd.ExecuteNonQuery;数据集是出了名的糟糕,我想如果你专注于读取值,你已经成功了一半,因为这只是在重新插入之前增加它的一个小例子。我已经解决了。我用过ExecuteScalar。Int64 RequestID=defaultInt64;ReqID=Int64cmd.ExecuteScalar;RequestID+=1;数据集是出了名的糟糕,我想如果你专注于读取值,你已经成功了一半,因为这只是在重新插入之前增加它的一个小例子。我已经解决了。我用过ExecuteScalar。Int64 RequestID=defaultInt64;ReqID=Int64cmd.ExecuteScalar;RequestID+=1;谢谢你的回复。我想将该值输入到另一个表中,但稍后我将添加该值,以及最终用户将输入的所有其他数据。感谢您的回复。我想将该值输入到另一个表中,但稍后我将添加该值,以及最终用户将输入的所有其他数据。我使用了ExecuteScalar,它工作得非常好!Int64 RequestID=defaultInt64;ReqID=Int64cmd.ExecuteScalar;需求ID+=1;我用了ExecuteScalar,它工作得很好!Int64 RequestID=defaultInt64;ReqID=Int64cmd.ExecuteScalar;需求ID+=1;