gpt4 book ai didi

C# 将数据库表中的所有行显示到 DataGrid

转载 作者:行者123 更新时间:2023-11-30 01:26:58 26 4
gpt4 key购买 nike

我已经搜索了一段时间关于如何的示例显示表中的多行或所有行。我举了很多例子发现我们很难正确执行它由于数据库连接和查询字符串..

我使用自己的数据库类和预制查询函数。所以在我的表格中我有这个:

userInfo = searchBox.Text;
string dateResult = Database.databaseAccess.GetColumnData(HLlib.ValueType.VALUETYPE_STRING, userInfo, "date", "username", userInfo, true);
string ipResult = Database.databaseAccess.GetColumnData(HLlib.ValueType.VALUETYPE_STRING, userInfo, "ip", "username", userInfo, true);
string userResult = Database.databaseAccess.GetColumnData(HLlib.ValueType.VALUETYPE_STRING, userInfo, "username", "username", userInfo, true);
string hwidResult = Database.databaseAccess.GetColumnData(HLlib.ValueType.VALUETYPE_STRING, userInfo, "hwid", "username", userInfo, true);
string pcResult = Database.databaseAccess.GetColumnData(HLlib.ValueType.VALUETYPE_STRING, userInfo, "pcname", "username", userInfo, true);

(userInfo 是一个文本框,其中包含正在搜索的名称(表)。)

获取该格式数据的函数如下:

public string GetColumnData(ValueType valueType, string tableName, string col, string colTwo, string equalsVal, bool compare)
{
MySqlConnection connection = null;
MySqlDataReader dataReader = null;
string colData = "";
try
{
string query = "";
if (compare)
query = "SELECT `" + col + "` FROM `" + tableName + "` WHERE `" + colTwo + "`='" + equalsVal + "';";
else
query = "SELECT `" + col + "` FROM `" + tableName + "`";
using (connection = new MySqlConnection(Hash.RunDecryption()))
{
using (MySqlCommand command = new MySqlCommand(query, connection))
{
connection.Open();
command.CommandText = query;
using (dataReader = command.ExecuteReader())
{
while (dataReader.Read())
{
switch (valueType)
{
case ValueType.VALUETYPE_STRING:
colData = dataReader.GetString(0);
break;

case ValueType.VALUETYPE_INT16:
colData = dataReader.GetInt16(0).ToString();
break;

case ValueType.VALUETYPE_INT32:
colData = dataReader.GetInt32(0).ToString();
break;

case ValueType.VALUETYPE_INT64:
colData = dataReader.GetInt64(0).ToString();
break;
}
}

if (dataReader.NextResult())
{
colData = "";
while (dataReader.Read())
{
switch (valueType)
{
case ValueType.VALUETYPE_STRING:
colData = dataReader.GetString(0);
break;

case ValueType.VALUETYPE_INT16:
colData = dataReader.GetInt16(0).ToString();
break;

case ValueType.VALUETYPE_INT32:
colData = dataReader.GetInt32(0).ToString();
break;

case ValueType.VALUETYPE_INT64:
colData = dataReader.GetInt64(0).ToString();
break;
}
}
}
}
}
}
}
catch
{
System.Windows.Forms.MessageBox.Show("Failed to retrieve data!", "Error!", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
dataReader.Close();
CloseConnection(connection);
}
finally
{
dataReader.Close();
CloseConnection(connection);
}
return colData;
}

现在已经解释了,我想做的是显示所选表中的每一行从下到上,或按日期排序(一列显示日期/时间)

我已经将我的列添加到 DataGrid 中,它们是:日期、ip、uid、hid、pname。

与数据库表中的格式相同。

任何人都可以通过提供有关如何正确执行此操作的示例来帮助我吗?

最佳答案

只需将其添加到查询字符串的末尾即可:

ORDER BY date DESC

关于C# 将数据库表中的所有行显示到 DataGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17893493/

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