0

我有以下代码从数据库中选择记录:

 public List<string>[] Select(string Command)
    {
        string query = Command;

        //Create a list to store the result
        List<string>[] list = new List<string>[2];
        list[0] = new List<string>();
        list[1] = new List<string>();


        //Open connection
        if (this.OpenConnection() == true)
        {
            //Create Command
            MySqlCommand cmd = new MySqlCommand(query, connection);
            //Create a data reader and Execute the command
            MySqlDataReader dataReader = cmd.ExecuteReader();

            //Read the data and store them in the list
            while (dataReader.Read())
            {
                list[0].Add(dataReader["NIK"] + "");
                list[1].Add(dataReader["Password"] + "");                    
            }

            //close Data Reader
            dataReader.Close();

            //close Connection
            this.CloseConnection();

            //return list to be displayed
            return list;


        }
        else
        {
            return list;
        }
    }

我的表中有 2 列,即NIKPassword表有 2 行,即1,12, 1

如何验证列表是否包含NIK= 2 和Password= 1?如何知道select语句是否成功从我的表中获取记录?如何将多列表打印到文本框中?

4

2 回答 2

0

您应该考虑使用Dictionary<string, string>而不是 s 数组List<string>

然后您可以打印所有记录:

foreach (var pair in dictionary)
    Console.WriteLine(pair.Key + ", " pair.Value);

每个字典对中的第一个字符串是键,第二个是值。

于 2013-05-08T00:33:34.757 回答
0

我如何验证列表是否包含 NIK = 2 和 Password = 1 ?

浏览列表并检查。例如,使用Enumerable.Any

我如何知道 select 语句是否成功从我的表中获取记录?

如果没有抛出异常。

如何将多列表打印到文本框中?

从数据库返回的值构造一个字符串(例如使用StringBuilder)并将其分配给TextBox.Text


顺便说一句,您真的应该考虑将阅读器和连接封闭在using块中。这样,即使在异常情况下,资源也将被确定性地释放。

此外,考虑使用特定类型的 getter 从读取器读取数据(例如GetStringGetInt32等)。

于 2013-05-08T00:33:55.657 回答