我正在一个项目上工作,需要通过在C#中循环遍历并逐行更新MySql表格来更新表格(逐个更新)。 注意:我只需要更新表格中的一列值。
现在,我知道这个问题已经被问过很多次,但是在花费了很多时间在互联网上搜索后,我没有找到解决我的问题的方法。 更多解释: 所以我已经知道了一些必要的事情来使这个工作:
现在,在我的研究中,我看到了一些回答建议使用
以下是我迄今为止的代码(用于建立连接和执行查询):
现在,我知道这个问题已经被问过很多次,但是在花费了很多时间在互联网上搜索后,我没有找到解决我的问题的方法。 更多解释: 所以我已经知道了一些必要的事情来使这个工作:
- 我知道如何建立一个(工作)SSH连接。
- 我知道如何建立一个(工作)MySql连接到我的数据库。
- 我知道如何在C#中运行/执行
SELECT
和UPDATE
查询/命令。
现在,在我的研究中,我看到了一些回答建议使用
Reader
。我不知道这是否是我需要的,如果是,我该如何正确使用它。以下是我迄今为止的代码(用于建立连接和执行查询):
class ReaderDemo1
{
public static void Update()
{
Console.WriteLine("[Core] Opening Connection To Database...");
Database.openStockConn(Settings.databaseName, Settings.databaseUsername, Settings.databasePassword, Settings.sshHost, Settings.sshUsername, Settings.sshPassword);
if (Database.stockConn.State != ConnectionState.Open)
{
Database.openStockConn(Settings.databaseName, Settings.databaseUsername, Settings.databasePassword, Settings.sshHost, Settings.sshUsername, Settings.sshPassword);
}
Console.WriteLine("[Core] database connection is now open!\n");
MySqlCommand cmd = new MySqlCommand("SELECT value FROM catalog_product_entity_decimal", Database.stockConn);
try
{
Console.WriteLine("[Price] Updating Prices...");
MySqlCommand command = new MySqlCommand("UPDATE catalog_product_entity_decimal SET value= 1112 WHERE value_id= 4063", Database.stockConn);
command.ExecuteNonQuery();
Console.WriteLine("[Price] Prices Have Been Updated!");
}
catch
{
Console.WriteLine("Updating Failed!");
}
finally
{
if (Database.stockConn != null)
{
Database.stockConn.Close();
}
}
}
}
为了提供额外的背景信息:
Database.cs
是我创建连接 (SSH
和MySql
) 的地方。Settings.cs
是我存储SSH
和MySql
连接的所有登录数据的地方。
如果你们想知道,我已经尝试过一些关于循环的事情,但是(如我已经提到的)这些尝试并不成功。
我的 Reader 尝试:
using (var reader = command.ExecuteReader())
{
var indexOfValue = reader.GetOrdinal("value");
while (reader.Read())
{
var price1 = reader.GetValue(indexOfValue);
Console.WriteLine("Executing Update Command...");
MySqlCommand cmd = new MySqlCommand("UPDATE catalog_product_entity_decimal SET value= 1222 WHERE entity_id= 759 AND entity_id= 839 AND entity_id= 881", con);
cmd.ExecuteNonQuery();
Console.WriteLine("Update Command Executed!");
}
}
以上代码并没有按照我期望的那样工作(可能是因为它现在实际上什么也没做)。只是想让大家知道,我卡住了,不是遇到了错误,而是不知道该怎么做。
希望你们中有人能帮助我或指引我正确的方向。如果你认为我的问题是重复的,请告诉我,我会查看它!:) 非常感谢。
顺祝商祺,
LKS
编辑:
如果你们想知道,这里 是我的表格样式。 表格包含大约 5600 行,所以这些只是前面的行。
Reader
。 - LinkerKnieSchijf