我在C#windows应用程序中从不同SQL服务器上的数据库表中获得以下2个查询。我需要从一个表中获取Order,LineNo和Quantity以及该订单的价格,并在不同服务器表上的另一个表中的行号为循环,并将结果插入到新表中。
一切正常,除了我无法获得每个行顺序的价格值,因为它在另一个表中
我如何加入这两张桌子?会像下面的工作一样吗?
在循环中注意变量以获得价格
decimal decPrice = (decimal)dsqry2.Tables[0].Rows[intCountOrders]["Price"];
来自另一个数据集
string strQuery1 = "SELECT ORDER, LINENO, QUANTITY FROM ORDERS";
SqlDataAdapter qry1Adapter = new SqlDataAdapter(strQuery1, sqldb);
DataSet dsqry1 = new DataSet();
qry1Adapter.Fill(dsqry1);
string strQuery2 = "SELECT ORDER, LINENO, PRICE FROM PRICES";
SqlDataAdapter qry2Adapter = new SqlDataAdapter(strQuery2, sql2db);
DataSet dsqry2 = new DataSet();
qry2Adapter.Fill(dsqry2);
if (dsqry1.Tables[0].Rows.Count > 0)
{
int intCountOrders = 0;
while (intCountOrders < dsqry1.Tables[0].Rows.Count)
{
string strPartNo = dsqry1.Tables[0].Rows[intCountOrders]["Order"].ToString();
string strLineNo = dsqry1.Tables[0].Rows[intCountOrders]["LineNo"].ToString();
int intQuantity = (int)dsqry1.Tables[0].Rows[intCountOrders]["Quantity"];
decimal decPrice = (decimal)dsqry2.Tables[0].Rows[intCountOrders]["Price"];
答案 0 :(得分:1)
您可以尝试使用merge
dsqry1.Merge(dsqry2);
http://msdn.microsoft.com/en-us/library/aa984388(v=vs.71).aspxenter
你也可以尝试这样的想法
var joinedData =(from c in dsqry1.Tables[0].AsEnumerable() select c).Union(from c
in dsqry2.Tables[0].AsEnumerable() select c);