tbl1
次の名前 (および)を持つ 2 つのテーブルを持つデータベースがあるとしますtbl2
。上記の各テーブルには、異なる数の列がtbl1
あり、3列とtbl2
4 列があります。
上記の各テーブルを にコピーする必要がありますDataTable
。
もちろん、以下のコードのように手動で行うこともできます。
class
{
public Main()
{
// for tbl1 with 3 columns.
string sql = "select * from tbl1"
MySqlCommand com = new MySqlCommand(sql, con);
MySqlDataReader dr = com.ExecuteDataReader();
DataTable dt = GetDataTable(3);
while (dr.Read())
{
if (dr.HasRows)
{
dt.Rows.Add(dr[0], dr[1], dr[2]); <---- Point of interest
}
}
// for tbl2 with 4 columns.
string sql = "select * from tbl2";
MySqlCommand com = new MySqlCommand(sql, con);
MySqlDataReader dr = com.ExecuteDataReader();
DataTable dt = GetDataTable(4);
while (dr.Read())
{
if (dr.HasRows)
{
dt.Rows.Add(dr[0], dr[1], dr[2], dr[3]); <---- Point of interest
}
}
}
public DataTable GetDataTable(int columnCount)
{
DataTable dt = new DataTable();
if (columnCount > 0)
{
for (int i = 0; i < length; i++)
{
dt.Columns.Add(i.ToString(), typeof(object));
}
}
return dt;
}
}
しかし、私がやりたいのは、特に矢印を示した部分で、上記のプロセスを自動化することです。
列に対して行ったように行を動的に追加する方法はありますか?
行を文字列として追加するプロセスを生成し、その文字列をコマンドとして呼び出す関数を使用して行を動的に追加できると考えていましたが、本当に迷って何をすべきかわかりません... plsは以下のコードを参照してください.
EX:
String generated from a function base on number of columns:
"dt.Rows.Add(dr[0], dr[1], dr[2], dr[3])"
Then, use the string as a command to add rows...