Windows10で visual studio 2017 communityを使ってコードを書いております。。
MySQLで用意された.NET用のdll(MySQL.DATA.dll)を利用してMySQLにコネクションしております。
※やりたい事
数万件のデータが入ったCSVデータを一括でMySQLのテーブルに追加したいです。
例えばですが、CSVデータには商品コードと個数が入っているときに
このデータを商品情報のテーブルデータと結合して、出荷テーブルに入れたいとき
MS SQLServerを使った場合は、いったんCSVデータをDataTableに取込んで そのDataTable を
DBにパラメータとして更新していました。
(↓こんな感じ)
MS SQLServer側にユーザー定義テーブル(userTable)を用意しておく。
SqlConnection cn = new SqlConnection("接続情報") cn.Open(); SqlCommand cmd = cn.CreateCommand(); cmd.Parameters.Add(new SqlParameter("@DT", SqlDbType.Structured)); cmd.Parameters["@DT"].Direction = ParameterDirection.Input; cmd.Parameters["@DT"].TypeName = "userTable"; cmd.Parameters["@DT"].Value = CsvDataTable; //←CSVデータをDataTableに入れてる string sql sql = "insert into targetTable "; sql += "select a.商品コード, b.商品名, a.個数, b.商品価格, (a.個数 * b.商品価格) as 小計 "; sql += "from @DT as a "; sql += "left join 商品テーブル as b on b.商品コード = a.商品コード"; cmd.CommandText = sql; cmd.ExecuteNonQuery()
MySQLに DataTable を渡す方法はありますでしょうか?
コードや、参考になるサイトなどご教授いただきたく
何卒よろしくお願いいたします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/02 08:17