如何将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的存储过程参数的主要内容,如果未能解决你的问题,请参考以下文章

将变量传递给存储过程,c#

如何通过参数将大于 200 个字符的字符串传递给存储过程

如何将多个值传递给存储过程中的单个参数

如何将数组传递到 SQL Server 存储过程

如何将输出参数从 vb.net 传递到 mysql 存储过程?

在使用表值参数时如何将多个参数一起传递给存储过程