Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用要添加的关系数未知的过程在MySql中存储数据_C#_Mysql_Database - Fatal编程技术网

C# 使用要添加的关系数未知的过程在MySql中存储数据

C# 使用要添加的关系数未知的过程在MySql中存储数据,c#,mysql,database,C#,Mysql,Database,我在MySql中有一个基本数据库,在那里我存储了一部电影以及电影类型和电影国家。在存储到数据库时,我使用C#执行以下操作: Create Connection; Open Connection; Insert Movie(mTitle, mYear); MovieID = LastInsertedID; ForEach s in ListofGenres Insert Movie_Genre(MovieID, s); Close Connection; //C# CALL insert

我在MySql中有一个基本数据库,在那里我存储了一部电影以及电影类型和电影国家。在存储到数据库时,我使用C#执行以下操作:

Create Connection;
Open Connection;
Insert Movie(mTitle, mYear);
MovieID = LastInsertedID;
ForEach s in ListofGenres
    Insert Movie_Genre(MovieID, s);
Close Connection;
//C#
CALL insertMovie(mTitle(string), mYear(string), mGenre(Array? List? concatString?))

//MySQL
Procedure insertMovie(mTitle varchar, mYear varchar, mGenre(Array? List? concatString?))
   Insert into movie(mTite, mYear);
   Declare id int;
   Select last_inserted_id() into id;  //No idea beyond this point
   Loop
       Insert into movie_genre(id, mGenre[i]);
在C#中,遍历列表并存储所述数字很容易。现在我尝试创建一个存储过程,它将接受数据,然后相应地处理它。问题是我怎样才能通过这样的考试:

Create Connection;
Open Connection;
Insert Movie(mTitle, mYear);
MovieID = LastInsertedID;
ForEach s in ListofGenres
    Insert Movie_Genre(MovieID, s);
Close Connection;
//C#
CALL insertMovie(mTitle(string), mYear(string), mGenre(Array? List? concatString?))

//MySQL
Procedure insertMovie(mTitle varchar, mYear varchar, mGenre(Array? List? concatString?))
   Insert into movie(mTite, mYear);
   Declare id int;
   Select last_inserted_id() into id;  //No idea beyond this point
   Loop
       Insert into movie_genre(id, mGenre[i]);

有什么方法可以传递某种类型的数据数组吗?如果它必须是一个字符串,那么如何从字符串中检索所述数量的条目,并将每个条目存储在它们的关系中?是否有某种方法可以从连接的字符串内部检索每个关系字符串?还是最好保留我目前拥有的系统?当你加入一堆演员和导演等等的时候,这是很慢的。

简单地说,一个人不能。将数据集合传递给存储过程的解决方法包括:预填充过程读取的
临时表
;以及将数据序列化为字符串参数,然后在过程中反序列化。然而,两者都不理想。“真正”的答案是存储过程并不是这样的:要插入批量数据,您可能会发现编写一条语句更容易,然后在具有不同参数值的循环中重复执行该语句。