我想创建一个编辑窗口来编辑数据库中的一行。
如何从数据库行读取所有项目?
我的代码到现在为止:
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#的新手,如果答案很简单,那就很抱歉。
答案 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;
希望有所帮助。