gpt4 book ai didi

c# - MySQL 和 C# 从数据库获取数据并创建关联数组/对象

转载 作者:行者123 更新时间:2023-11-29 22:13:15 24 4
gpt4 key购买 nike

我是 C# 新手,并且已经使用 PHP 多年。

我面临的问题是我想创建一个方法/函数,它将接受“sql 查询”作为参数并返回检索到的任何数据,以便可以使用 key/index/column_name 使用它。

我所取得的成就

我所实现的是我能够通过同一函数内的索引访问数据。但我不知道号码。将返回的列,因此我无法将其存储在数组中。

代码

        string ConnectionString = ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString;
MySqlConnection db;
db = new MySql.Data.MySqlClient.MySqlConnection(ConnectionString);
try
{
db.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = db;
cmd.CommandText = sql;
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Console.WriteLine(rdr['areaId'].toString());
}
db.Close();
return true;
}

问题
1.我不知道Columns的数量。
2. 我无法访问索引或列名称。

我想创建一个数据关联数组,其中列名作为索引,数据作为其数据

编辑
我正在尝试使用 WPF 和 MySQL 数据库在 C# 上构建应用程序。

最佳答案

我的第一个建议是使用一个微型 ORM,例如 Dapper.net

这可以通过 nuget 获取。如果您希望从一个表或多个表中检索未知的数据数组,您可以将其提取到 ExpandoObject 中,然后对其进行枚举。循环 ExpandoObject 的示例可以是 found here .

    public Foo FetchSomeData(string query)
{
using (var cn = Connection)
{
var result = cn.Query(query);
//do something with result, and return it
return new Foo(result);
}
}

我担心将原始sql传递到数据库而不至少检查它或使用参数,因为这可能是一个主要的安全风险,特别是如果您允许用户生成查询并且您不首先对其进行审查。

关于c# - MySQL 和 C# 从数据库获取数据并创建关联数组/对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31425041/

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