![](/img/trans.png)
[英]c# - how to do subtraction between two columns in different listview
[英]C# simple subtraction from two different database
我有 2 個不同的數據庫 - SQLite 和 PostgreSQL,我試圖從這個數據庫的表上進行微小的數學運算。 兩個表都包含列 nr_serii 和 ilosc,SQLite:
和 Postgres:
我建立了與兩個數據庫的連接並填充數據集。 也許我應該使用不同的地方來存儲數據?
我需要減去列 ilosc: (sqlite-postgres),但不知道該怎么做。 例如,對於每個 nr_serii make 減法列 ilosc:
nr_serii:222222
ilosc:15-7=8
最后我想向datagridview顯示輸出數據。 當我使用消息框時,我可以看到數據集中的數據。 這是我的部分代碼:
string cs = @"URI = file:" + Sdatabase;
string csP = conParam;
string sqlP = "select nr_serii, ilosc from stany";
string sql = "select nr_serii, ilosc from przychod";
using var con = new SQLiteConnection(cs);
con.Open();
using var cmd = new SQLiteCommand(sql, con);
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
using var conP = new NpgsqlConnection(csP);
conP.Open();
NpgsqlCommand cmdP = new NpgsqlCommand(sqlP, conP);
NpgsqlDataAdapter DA = new NpgsqlDataAdapter(cmdP);
DataSet dsP = new DataSet();
DA.Fill(dsP);
//----------test-----------
foreach (DataRow row in dsP.Tables[0].Rows)
{
var nr_serii = row["nr_serii"];
var ilosc = row["ilosc"];
MessageBox.Show(nr_serii +","+ ilosc);
}
//--------------------------
例如,您可以從第一個數據源ds瀏覽數據表,並在第二個數據源dsP中的數據表中的每一行中通過nr_serii列的值搜索匹配的行,如果找到,則在新的第三個數據源中添加帶有計算結果的新行結果表。
然后你不要忘記解決如何處理僅在第一個ds或僅在第二個dsP數據源中的記錄的問題,具體取決於nr_serii列的值。
程序代碼示例:
//prepare result third DataTable
DataTable resultDt = new DataTable();
resultDt.Columns.Add("nr_serii");
resultDt.Columns.Add("ilosc");
//add content to result DataTable
foreach (DataRow row in ds.Tables[0].Rows)
{
var nr_serii = row["nr_serii"];
var ilosc = row["ilosc"];
DataRow drP = null;
foreach (DataRow dataRow in dsP.Tables[0].Rows)
{
if (nr_serii.ToString() == (string)dataRow["nr_serii"])
{
drP = dataRow;
break;
}
}
if (drP != null)
{
var dr = resultDt.NewRow();
dr["nr_serii"] = nr_serii;
dr["ilosc"] = (int)ilosc - (int)drP["ilosc"];
resultDt.Rows.Add(dr);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.