如何比较两个数据表中数据表的值并将它们相减
how to compare values of a datatable from two datatable and subtract them
我正在用 C# 编码,我想比较 "sell" 数据 table 中的 "quantity" 与 "buy" 数据 table 并且如果 "quantity" in "buy" table 大于我需要从 "sell" 和 "quantity" 中减去 "buy" table 否则就继续。请告知如何取值进行比较。我做了如下编码,但它显示错误。
protected void Button1_Click(object sender, EventArgs e)
{
try
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
conn.Open();
var sql = @"select scriptname,accnum,Quantity,price from transac where transactio = 'Sell' and scriptname = '" + TextBox2.Text + "' and accnum ='" + TextBox1.Text + "'";
var sqll = @"select scriptname,accnum,Quantity,price from transac where transactio = 'Buy' and scriptname ='" + TextBox2.Text + "' and accnum ='" + TextBox1.Text + "'";
var da = new SqlDataAdapter(sqll, conn);
var dataTablebuy = new DataTable();
da.Fill(dataTablebuy);
var dataAdapter = new SqlDataAdapter(sql, conn);
var dataTablesell = new DataTable();
dataAdapter.Fill(dataTablesell);
foreach (DataRow row in dataTablesell.Rows)
{
foreach (DataRow rw in dataTablebuy.Rows)
{
if (rw["Quantity"] > row["Quantity"])
{
rw["Quantity"] = rw["Quantity"] - row["Quantity"];
}
else
{
break;
}
}
}
}
catch (System.Data.SqlClient.SqlException sqlEx)
{
Response.Write("error" + sqlEx.ToString());
}
catch (Exception ex)
{
Response.Write("error" + ex.ToString());
}
}
试试这个:
if (double.Parse(rw["Quantity"].ToString()) > double.Parse(row["Quantity"].ToString()))
{
rw["Quantity"] = double.Parse(rw["Quantity"].ToString()) - double.Parse(row["Quantity"].ToString())
}
我只是想提供更可行的选择,以备您需要时使用。
我刚刚在查询本身中介绍了您的场景。我加入了表格并根据您的需要获取了数据
您只需使用此查询获取数据。
请为c#代码构建查询
select T1.scriptname,T1.accnum,(当 (T2.Quantity>T1.Quantity) 然后 (T2.Quantity-T1.Quantity) else T1.Quantity end) as Quantity,T1.price
来自交易 T1,交易 T2
在哪里
T1.transactio = 'Sell'
和
T2.transactio = 'Buy'
和
T1.scriptname = 'TextBox2.Text'
和
T1.accnum ='TextBox1.Text'
和
T2.scriptname ='TextBox2.Text'
和
T2.accnum ='TextBox1.Text'
和
T1.scriptname = T2.scriptname
和
T2.accnum = T2.accnum
我正在用 C# 编码,我想比较 "sell" 数据 table 中的 "quantity" 与 "buy" 数据 table 并且如果 "quantity" in "buy" table 大于我需要从 "sell" 和 "quantity" 中减去 "buy" table 否则就继续。请告知如何取值进行比较。我做了如下编码,但它显示错误。
protected void Button1_Click(object sender, EventArgs e)
{
try
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
conn.Open();
var sql = @"select scriptname,accnum,Quantity,price from transac where transactio = 'Sell' and scriptname = '" + TextBox2.Text + "' and accnum ='" + TextBox1.Text + "'";
var sqll = @"select scriptname,accnum,Quantity,price from transac where transactio = 'Buy' and scriptname ='" + TextBox2.Text + "' and accnum ='" + TextBox1.Text + "'";
var da = new SqlDataAdapter(sqll, conn);
var dataTablebuy = new DataTable();
da.Fill(dataTablebuy);
var dataAdapter = new SqlDataAdapter(sql, conn);
var dataTablesell = new DataTable();
dataAdapter.Fill(dataTablesell);
foreach (DataRow row in dataTablesell.Rows)
{
foreach (DataRow rw in dataTablebuy.Rows)
{
if (rw["Quantity"] > row["Quantity"])
{
rw["Quantity"] = rw["Quantity"] - row["Quantity"];
}
else
{
break;
}
}
}
}
catch (System.Data.SqlClient.SqlException sqlEx)
{
Response.Write("error" + sqlEx.ToString());
}
catch (Exception ex)
{
Response.Write("error" + ex.ToString());
}
}
试试这个:
if (double.Parse(rw["Quantity"].ToString()) > double.Parse(row["Quantity"].ToString()))
{
rw["Quantity"] = double.Parse(rw["Quantity"].ToString()) - double.Parse(row["Quantity"].ToString())
}
我只是想提供更可行的选择,以备您需要时使用。
我刚刚在查询本身中介绍了您的场景。我加入了表格并根据您的需要获取了数据
您只需使用此查询获取数据。
请为c#代码构建查询
select T1.scriptname,T1.accnum,(当 (T2.Quantity>T1.Quantity) 然后 (T2.Quantity-T1.Quantity) else T1.Quantity end) as Quantity,T1.price 来自交易 T1,交易 T2 在哪里 T1.transactio = 'Sell' 和 T2.transactio = 'Buy' 和 T1.scriptname = 'TextBox2.Text' 和 T1.accnum ='TextBox1.Text' 和 T2.scriptname ='TextBox2.Text' 和 T2.accnum ='TextBox1.Text' 和 T1.scriptname = T2.scriptname 和 T2.accnum = T2.accnum