使用c#.net在sql服务器和mysql数据库中插入一个数组

本文关键字:插入 数组 一个 数据库 net sql 服务器 mysql 使用 | 更新日期: 2023-09-27 17:59:38

我的Winforms应用程序在C#中有一个列表:

List<string> StudentSubjects = new List<>(string);

我已将这些插入列表:

 StudentSubjects.Add("Physics", "Chemistry", "Mathematics", "English");

现在我有一个表格:学生

----------
**StudentID     | SubjectsSelected**
---------
STDNT001        |  [HERE all subjects selected by the student should be inserted]     
STDNT002        |  Physics, Chemistry, Mathematics, English
STDNT002        |  Physics, Chemistry, Mathematics, English
----------

我应该为MySql使用内爆函数吗?但是语法是什么?此外,对SQL Server做些什么。

我正在做:

string query =
"INSERT INTO STUDENTS VALUES 
('S001', implode('" + StudentSubjects.ToArray() + " ')) "

但也有一些错误。请帮忙。

使用c#.net在sql服务器和mysql数据库中插入一个数组

这应该可以修复您的查询

string query = @"
    INSERT INTO STUDENTS VALUES 
    ('S001', '" + string.Join(",", StudentSubjects) + "')";

但是,您最好使用参数化查询,而不是字符串串联。

对于MySQL:

using (var connection = new MySqlConnection(connectionString))
using (var command = connection.CreateCommand())
{
    command.CommandText = @"
        INSERT INTO STUDENTS VALUES 
        ('S001', ?subjects)";
    var param = command.Parameters.Add("?subjects", MySqlDbType.VarChar);
    param.Value = string.Join(",", StudentSubjects);
    connection.Open();
    command.ExecuteNonQuery();
} 

对于SQL Server:

using (var connection = new SqlConnection(connectionString))
using (var command = connection.CreateCommand())
{
    command.CommandText = @"
        INSERT INTO STUDENTS VALUES 
        ('S001', @subjects)";
    command.Parameters.AddWithValue("subjects", string.Join(",", StudentSubjects))
    connection.Open();
    command.ExecuteNonQuery();
}