我需要通过一个数据库查找所有类似文本的字段,检查可能在这些字段中的特定URL集并使用一些正则表达式对其进行修改。
实际的文本操作部分很好,但由于我通常会通过表格,其中一些似乎没有主键,我想知道如何更新这些行读这个。我将在下面给出一个虚拟的例子。
foreach(var matchingTable in tables){
foreach(var matchingColumn in columns){
SqlCommand currentCommand = new SqlCommand("select * from @matchingTable;");
currentCommand.Parameters.AddWithValue("@matchingTable", matchingTable);
using (SqlDataReader reader = currentCommand.ExecuteReader())
{
while (reader.Read())
{
if(/* logic to check reader[matchingColumn]*/){
/*edit row to change column matchingColumn, a row which I can't be sure has any uniquely identifying factor*/
}
}
}
}
}
是否可以编辑此任意行,或者我是否必须更改我这样做的方式?
答案 0 :(得分:0)
如果表没有保证唯一ID,则没有重复记录的值。因此,如果重复的记录也被更新,那么不会造成任何伤害。
您可以将所有字段视为一个复合字段并执行更新。 要记住的一件事是重复记录也会更新。
答案 1 :(得分:0)
这可能更容易在数据库内解决。您可以编写一个等效于两个for循环的游标来选择表和列。从那里你可以使用正则表达式编写一个简单的UPDATE / WHERE。