gpt4 book ai didi

c# - 如何在C#中将ListView存储到数据库(已安装的应用程序)

转载 作者:行者123 更新时间:2023-11-29 20:59:19 26 4
gpt4 key购买 nike

如何将ListView的项目复制到数据库?例如:我在 ListView 中有一个 PC 上已安装应用程序的列表,如何将这些项目插入到数据库 Programs 的字符串列中?

 private void button1_Click(object sender, EventArgs e)
{
String uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";

RegistryKey r = Registry.LocalMachine.OpenSubKey(uninstallKey);

foreach (String skName in r.GetSubKeyNames())
{
RegistryKey rk = r.OpenSubKey(skName);

try {
var displayName = rk.GetValue("DisplayName");
ListViewItem item;

if (displayName != null) {
item = new ListViewItem(new string [] { displayName.ToString() });
listView1.Items.Add(item);
}
}
catch (Exception ex)
{ }
}
}

救命啊!我需要将项目添加到 MySQL 数据库

最佳答案

基本上,您需要做的就是存储您找到的每个应用程序一行。通过使用循环和正确参数化的 SQL 查询来插入数据,您可以最有效地完成此操作。

类似这样的东西(我对 MySQL 不太熟悉,作为一个 SQL Server 人员 - 也许我的语法需要一些调整才能工作 - 但你应该了解如何继续):

// set up connection and define INSERT command
string connectionString = .....(this typically is read from a config file)..... ;

// not sure if you can use @ProgramName as parameter, or ?ProgramName... - seen both
string insertQry = "INSERT INTO Programs(ProgramName) VALUES(@ProgramName);";

// define the connect and command objects
using (MySqlConnection conn = new MySqlConnection(connectionString))
using (MySqlCommand cmd = new MySqlCommand(insertQry, conn))
{
// define the parameter(s) *ONCE*, outside of the loop - including their type and max length
cmd.Parameters.Add("@ProgramName", MySqlDbType.VarChar, 250);

// open connection
conn.Open();

// now, loop over your applications found in the registry; I'd suggest you put those
// applications found into a separate List<string> for easier use.....
foreach(ListViewItem item in listView1.Items)
{
// set parameter
cmd.Parameters["@ProgramName"].Value = item.DataItem.ToString(); // would be much simpler with a List<string> ....

// execute insert query for that parameter value
int rowsInserted = cmd.ExecuteNonQuery();
}

// close connection
conn.Close();
}

我需要使用item.DataItem获取 ListViewItem 中存储的实际数据正如我所说 - 如果您将注册表中发现的应用程序名称存储到 List<string> discoveredApplications ,代码肯定会更容易编写和理解......

关于c# - 如何在C#中将ListView存储到数据库(已安装的应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37370256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com