使用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() + " ')) "
但也有一些错误。请帮忙。
这应该可以修复您的查询
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();
}