ここに示す方法以外の方法で、複数のオブジェクトをMySQLデータベースに挿入する方法はありますか?これは動作しますが、実行に時間がかかります。複数のオブジェクトをMySQLに挿入
using (MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(connStr))
{
//Goes thrue the List<object>
foreach(List<object> sub in listSubject)
{
MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = "CALL stp_InsertSubject(@param_SubjectId, @param_ProjectId, @param_Used);";
cmd.Parameters.AddWithValue("@param_SubjectId",Convert.ToInt32(sub[0]));
cmd.Parameters.AddWithValue("@param_ProjectId", Convert.ToInt32(sub[1]));
cmd.Parameters.AddWithValue("@param_Used", Convert.ToBoolean(sub[2]));
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
マイストアドプロシージャ:
CREATE DEFINER=`mortenstarck`@`%` PROCEDURE `stp_InsertSubject`(param_SubjectId int(45), param_ProjectId int(45), param_Used tinyint(1))
Subject_has_Projects
(Subject_Id
、Projects_Id
、Used
)VALUES(param_SubjectId、param_ProjectId、param_Used)中 INSERTをBEGIN。 END
あなたはstp_InsertSubject'がそれを答えるために、正確に何 '私たちを見る必要があるだろう... – ChristopheD
をあなたの' ID =(Int64型ループ内で呼び出すと、 )cmd.ExecuteScalar(); '毎回ループオーバーライドする。 – jams