C# .NET MySQL数据读取器选择功能?
我已经很久没有使用.NET了,但谢天谢地,我几乎已经完成了一个比较sqlite和mysql数据库的工具的编写。不过,当我尝试为包装器编写一个函数来处理SELECT调用时,遇到了一个问题,因为我无法完全理解数据读取器 我的理解是,读卡器上循环的每次迭代都是下一行,GetString(x)返回“x”的列值作为索引。不过,我找到的所有示例都是在了解所需的行/列名的情况下使用的。如何使用“SELECT*FROM”调用并保存列名/值以供以后访问?微软似乎有一个“FieldCount”函数,但我在MySQL连接器上的结果是空的 谢谢C# .NET MySQL数据读取器选择功能?,c#,.net,mysql,select,sqldatareader,C#,.net,Mysql,Select,Sqldatareader,我已经很久没有使用.NET了,但谢天谢地,我几乎已经完成了一个比较sqlite和mysql数据库的工具的编写。不过,当我尝试为包装器编写一个函数来处理SELECT调用时,遇到了一个问题,因为我无法完全理解数据读取器 我的理解是,读卡器上循环的每次迭代都是下一行,GetString(x)返回“x”的列值作为索引。不过,我找到的所有示例都是在了解所需的行/列名的情况下使用的。如何使用“SELECT*FROM”调用并保存列名/值以供以后访问?微软似乎有一个“FieldCount”函数,但我在MySQL
public void Query(string query, string tableName)
{
//Open connection
if (this.OpenConnection() == true)
{
//Create Command
MySqlCommand cmd = new MySqlCommand(query, connection);
MySqlDataReader dataReader = cmd.ExecuteReader();
//Read the data and store them in the list
while (dataReader.Read())
{
int count = Count(tableName);
for (int x = 0; x < count; x++)
{
Console.WriteLine(dataReader.GetString(count));
}
}
//close Data Reader
dataReader.Close();
//close Connection
this.CloseConnection();
}
}
公共作废查询(字符串查询,字符串表名)
{
//开放连接
if(this.OpenConnection()==true)
{
//创建命令
MySqlCommand cmd=新的MySqlCommand(查询、连接);
MySqlDataReader=cmd.ExecuteReader();
//读取数据并将其存储在列表中
while(dataReader.Read())
{
int count=计数(表名);
对于(int x=0;x
根据列的顺序,您可以使用获取列的名称x
使用“mysql连接器”访问mysql中的数据这比自己编写查询更简单:
然后使用EntityFramework通过此连接器访问数据。您还可以从mysql中现有的数据库自动生成*.edmx模型,这将使您能够快速访问和处理数据库中的数据。以下是有关从现有数据库添加*.edmx模型的信息:
将从表中选择所有数据的查询,例如“Products”,如下所示:
List products=dbContext.products.Where(e=>e.ProductId!=-1.ToList()
这将返回数据库中表products中的全部产品列表
然后你可以随心所欲地使用产品。例如,“产品”中第一个产品的“名称”列如下所示:
字符串firstProductName=产品[0]。名称
希望能有所帮助。谢谢你的帮助。我想我的问题有点困惑。我想问的是,为了便于参考,存储这些数据的最佳方式是(列表/字典/2D数组/等等)?@BrettPowell:确切的数据是什么?列名?只是列名和每行的值。我基本上需要从sqlite中获取一个值,并检查它是否与mysql中特定列中的任何值匹配。@BrettPowell:我真的不知道,这取决于很多事情。一般来说,如果数据集很大,那么将所有数据拉入内存可能不是一个好主意。否则,您可以将它们放在例如
列表中
,因为有一个GetValues
方法可以提供一个object[]
。谢谢您,尽管这个项目现在已经差不多完成了,转换到这个项目似乎相当复杂。答案很好:)没问题。我还想告诉你一件事。当我开始使用C#和.NET时,我还亲手编写sql查询,并使用DataReader转换到.NET中的可用对象,但在一个伟大的日子里,我找到了自己的EntityFramework和Linq。现在我甚至不能指望我的生活没有这些技术。你应该试一下。不管怎样,我很高兴你喜欢我的答案。