我一直在寻找的例子了一段关于如何 显示多个或表中的所有行。我发现很多示例I 让我难以正确执行它 ,因为数据库连接和查询字符串。C#显示从数据库表中的所有行的DataGrid
我使用我自己的数据库类和预制查询函数。所以在我的形式,我有这样的:
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中:date,ip,uid,hid,pname。
格式相同,我在数据库表。
谁能帮我提供有关如何正确地执行这样的例子?
顺序需要更多信息。你如何执行查询?存储结果是什么?看起来像是填充一个DataTable会非常简单,但是听起来你正在使用某种自定义对象呢? –
我编辑我的问题,并添加了我用来从数据库中获取数据的查询函数。结果在上面的字符串中保存信息 – Faded