C# 从表中选择,然后将该(值+1)插入另一个表?
谢谢你看我的问题。希望我能得到答案。我有一个C语言的项目。我试图从表中获取一个IF字段。一旦我有了这些数据,我想把这个值增加1。例如,我抓取10000,然后添加1,使其成为10001。然后,我想将递增的值输入到另一个表中 到目前为止,我只有选择查询: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
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;