c# MySQL作为多行字符串
本文关键字:字符串 MySQL | 更新日期: 2023-09-27 18:10:47
我试图在c#中查询多行mySQL(文本)成字符串[]
cmd = new MySql.Data.MySqlClient.MySqlCommand("SELECT `items` FROM `queue` WHERE `status`='active'", conn);
object[] que_items = cmd.ExecuteScalar();
items给出(例如):
item1
第二条
item3
没有工作,因为它给出了一个错误。任何帮助吗?
因为每个人都想看到错误:
不能隐式地将类型"object"转换为"object[]"。存在显式转换(您是否缺少强制类型转换?)
另见https://i.stack.imgur.com/dpidY.png
查看ExecuteScalar
方法的文档,您可以看到:
执行查询,并返回查询返回的结果集中第一行的第一列
只返回第一个结果。如果您需要所有这些,您可以使用ExecuteReader
方法。
var reader = cmd.ExecuteReader();
List<string> results = new List<string>();
while(reader.Read())
{
results.Add(reader[0].ToString()); // or reader["items"]
}
也可以使用DataTable
:
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
var results = dt.AsEnumerable()
.Select(row => row.Field<string>("items"))
.ToArray();
编辑:看起来你想获得第一个结果并将其分割成一个数组,所以使用ExecuteScalar
是正确的方法,但你只需要将结果转换为string
并将其分割:
string[] que_items = cmd.ExecuteScalar()
.ToString()
.Split(new[] { Environment.NewLine }, StringSplitOptions.None);