如何将C#数据表传递给mysql的存储过程参数
Posted
技术标签:
【中文标题】如何将C#数据表传递给mysql的存储过程参数【英文标题】:How to pass C# datatable to mysql's stored procedure parameter 【发布时间】:2019-09-17 18:20:02 【问题描述】:我有 C# (ASP.NET) 端的数据表,我想将该数据表传递给 mysql 中的过程参数,并将该孔数据表转储到 mysql 中的临时表
如何在mysql中实现?
请告诉我!!!!
谢谢,
【问题讨论】:
【参考方案1】:这是一个例子:
CREATE TYPE members_table_type AS TABLE
(
mem_username VARCHAR(25),
mem_firstname VARCHAR(25),
mem_lastname VARCHAR(25)
);
CREATE STORED PROCEDURE insert_members
@members members_table_type
AS
BEGIN
INSERT INTO dbo.members
(mem_username, mem_firstname, mem_lastname)
SELECT mem_username, mem_firstname, mem_lastname FROM @members;
END
In .NET:
DataTable members = new DataTable();
members.Columns.Add(new DataColumn("mem_username", typeof(string)));
members.Columns.Add(new DataColumn("mem_firstname", typeof(string)));
members.Columns.Add(new DataColumn("mem_lastname", typeof(string)));
DataRow row = members.NewRow();
row["mem_username"] = "test";
row["mem_firstname"] = "test";
row["mem_lastname"] = "test";
members.Rows.Add(row);
SqlCommand command = new SqlCommand("insert_members");
command.Parameters.Add(members, SqlDbType.Structured);
command.ExecuteNonQuery();
【讨论】:
你不能。 MySQL 没有用户定义的类型。 这将可能使用 Sql Server ,而不是使用 MySql 抱歉,是的,这是用于 sql server 的以上是关于如何将C#数据表传递给mysql的存储过程参数的主要内容,如果未能解决你的问题,请参考以下文章