我需要能够使用此程序在数据库中更改产品。为此,我需要能够将它们彼此并排放置。我该怎么做呢?
查看图片。 https://imgur.com/a/0Vy5XaC
我试图按照教程进行操作,但我找不到任何东西...
string connectionURL = @"SERVER=localhost;DATABASE=shopkartje;UID=root;PASSWORD=;SslMode=None";
MySqlConnection connection = null;
MySqlDataReader rdr = null;
try
{
connection = new MySqlConnection(connectionURL);
connection.Open();
string sql = "SELECT * from producten";
MySqlCommand commando = new MySqlCommand(sql, connection);
rdr = commando.ExecuteReader();
while (rdr.Read())
{
lvproducten.Items.Add(rdr.GetString("ID"));
lvproducten.Items.Add(rdr.GetString("Productnaam"));
}
}
catch
{
MessageBox.Show("Kan bestand niet openen ");
}
finally
{
connection.Close();
rdr.Close();
}
那么将它们彼此相邻的是什么代码?它们需要我单击才能更改或更新。
答案 0 :(得分:0)
使用Details视图声明ListView并添加两列,然后遍历循环 并添加项目
lvproducten.View = View.Details;
lvproducten.Columns.Add("ID", 100, HorizontalAlignment.Left);
lvproducten.Columns.Add("Productnaam", 150, HorizontalAlignment.Left);
while (rdr.Read())
{
//lvproducten.Items.Add(rdr.GetString("ID"));
//lvproducten.Items.Add(rdr.GetString("Productnaam"));
string[] str = new string[1];
ListViewItem itm;
str[0] = rdr.GetString("ID");
str[1] = rdr.GetString("Productnaam")
itm = new ListViewItem(str);
lvproducten.Items.Add(itm);
}
答案 1 :(得分:0)
在“详细信息”模式下的ListView中,您有许多数据列(子项)
要在单个调用中添加“行”的数据,您需要准备一个数组
string[] row = { rdr.GetString("ID"), rdr.GetString("Productnaam")};
var lvItem= new ListViewItem(row);
lvproducten.Items.Add(lvItem);
要从当前选定的“行”中获取数据,请订阅SelectedIndexChanged事件并查看您的行
void lvproducten_SelectedIndexChanged(object sender, EventArgs e)
{
if (lvproducten.SelectedItems.Count > 0)
{
string id = listView1.SelectedItems[0].SubItems[0].Text;
string product = listView1.SelectedItems[0].SubItems[1].Text;
.... update your textboxes....
}
}
答案 2 :(得分:0)
您在正确的轨道上使用items.add,但每个“项目”都是一行,因此您需要在该行中添加“子项目” ...
ListViewItem item = new ListViewItem(rdr.GetString("ID"));
item.SubItems.Add(rdr.GetString("Productnaam"));
listView1.Items.Add(item);
因此,在这3个步骤中,我们首先创建了一个项目,其次添加了我们的第一个子项目,最后将其添加到了列表视图中。
您的列表视图需要将其属性“视图”设置为详细信息,但是按图片显示,您已经完成了:)
如果要从数据库中添加更多列,您可以像这样向代码中添加更多子项...
ListViewItem item = new ListViewItem(rdr.GetString("ID"));
item.SubItems.Add(rdr.GetString("Productnaam"));
item.SubItems.Add(rdr.GetString("AnotherRow"));
item.SubItems.Add(rdr.GetString("OneMoreForLuck"));
listView1.Items.Add(item);
除了您的注释之外,您还需要将列表视图属性“ FullRowSelect”设置为true,然后使用SelectedIndexChanged事件以及类似以下内容...
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
//Set the first textbox
textBox1.Text = listView1.SelectedItems[0].SubItems[0].Text;
//Set the second textbox
textBox2.Text = listView1.SelectedItems[0].SubItems[1].Text;
}
}