gpt4 book ai didi

c# 导致 mysql = System.Collections.Generic.List

转载 作者:行者123 更新时间:2023-11-29 06:19:15 25 4
gpt4 key购买 nike

在表“skupina”中,我们有值“pc1,pc2,pc3,...”。但在这段代码中,我得到了 mysql System.Collections.Generic.List 的结果,但应该是 "pc1,pc2,pc3,..."。我的错误在哪里?

private void button1_Click(object sender, EventArgs e)
{
using (MySqlConnection cnn = new MySqlConnection("Server=10.7.18.35;Database=OitDB;Uid=martin;Pwd=;"))
{
MySqlDataAdapter da = new MySqlDataAdapter("SELECT namepc FROM skupina where nazovskup= 'mojask' ", cnn);
DataSet ds = new DataSet();
da.Fill(ds, "skupina");

List<string> skName = new List<string>();
foreach (DataRow row in ds.Tables["skupina"].Rows)
{
skName.Add(row["namepc"].ToString());

string constring = "Server=10.7.18.35;Database=OitDB;Uid=martin;Pwd=;";
var Query = "INSERT INTO OitDB.skup(uzivatel)VALUES('" + skName + "')";
MySqlConnection conDatabase = new MySqlConnection(constring);
MySqlCommand cmdDatabase = new MySqlCommand(Query, conDatabase);
MySqlDataReader myReader;

try
{
conDatabase.Open();
myReader = cmdDatabase.ExecuteReader();
MessageBox.Show("Správa odoslaná!");
while (myReader.Read())
{
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}

here is error

最佳答案

您正在隐式调用 ToString()List<T> 上.这并没有达到您的预期,因为 List<T>不会覆盖 ToString() .你可以使用

// Note: the ToArray() call is only required if you're targeting .NET 3.5, which
// is massively out of date, and really shouldn't be used IMO.
string.Join(", ", skName.ToArray())

得到一个逗号分隔的结果...但你真的不应该在你目前正在做的地方做它。相反,您应该使用参数化 SQL,例如

var query = "INSERT INTO OitDB.skup (uzivatel) VALUES (@name)";
...
cmdDatabase.Parameters.Add("@name", MySqlDbType.VarChar).Value
= string.Join(", ", skName.ToArray());

始终,始终对值使用参数化 SQL。您应该为非值部分动态构建 SQL - 在这种情况下,您需要非常非常小心。

我还建议使用 using命令和数据读取器的指令...目前您打开了两个不同的连接,这似乎是不必要的...

关于c# 导致 mysql = System.Collections.Generic.List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34224818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com