C#从数据库行获取所有项目

时间:2017-03-03 14:31:46

标签: c# mysql wpf

我想创建一个编辑窗口来编辑数据库中的一行。

如何从数据库行读取所有项目?

我的代码到现在为止:

private void FirmCustomerValues()
    {
        config conf = new config();
        connection = new MySqlConnection(conf.connection_string);
        try
        {
            if (this.OpenConnection() == true)
            {
                MySqlCommand cmd = new MySqlCommand("SELECT * FROM firmenkunden WHERE id='" + firmCustomerID + "'",connection);

                MySqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    foreach (var row in reader)
                    {
                        System.Windows.Controls.TextBox textbox = new TextBox();

                        // Textbox Properties
                        textbox.Width = 159;
                        textbox.Name = "";
                        textbox.Text = reader[1].ToString();

                        textboxWP.Children.Add(textbox);
                    }



                }

            }
        }
        catch (MySqlException ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

但这不起作用。 有谁知道如何解决这个问题?

我想我也需要一个for循环。我是C#的新手,如果答案很简单,那就很抱歉。

1 个答案:

答案 0 :(得分:0)

删除foreach循环。

reader.Read()通过返回的行进行迭代。

您可以使用reader.HasRows()来确定是否有任何行

还尝试使用textbox.Text = reader["ColumnName"].ToString(); 因为这更容易阅读。

生成唯一的文本框名称

var textBoxCounter =0;

在Read()循环中

textbox.Name = string.Format("txtText{0}", textBoxCounter);
textbox.Text = reader[1].ToString();
textBoxCounter += 1;

希望有所帮助。