我有一张表有100-200条记录。 我已将这些记录提取到数据集中。
现在我使用foreach循环遍历所有记录
dataset.Tables[0].AsEnumerable()
我想为循环中的每条记录更新一列。我怎样才能做到这一点。使用相同的数据集。
答案 0 :(得分:3)
你应该使用用于填充DataSet并调用Update方法的原始DataAdapter(下面的代码中为adapter
),你还需要CommandBuilder,它取决于你使用的是什么数据库,这里是SQL服务器的例子:
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
adapter.UpdateCommand = builder.GetUpdateCommand();
adapter.Update(dataset);
dataset.AcceptChanges();
这是一个很好的例子:
答案 1 :(得分:3)
我是否使用数据适配器使用选择命令来填充数据集?
要编辑数据表中的数据并将更改保存回数据库,您需要为数据适配器提供更新命令。这样的事情: -
SQLConnection connector = new SQLConnection(@"Your connection string");
SQLAdaptor Adaptor = new SQLAdaptor();
Updatecmd = new sqlDbCommand("UPDATE YOURTABLE SET FIELD1= @FIELD1, FIELD2= @FIELD2 WHERE ID = @ID", connector);
您还需要为字段添加参数: -
Updatecmd.Parameters.Add("@FIELD1", SQLDbType.VarCHar, 8, "FIELD1");
Updatecmd.Parameters.Add("@FIELD2", SQLDbType.VarCHar, 8, "FIELD2");
var param = Updatecmd.Parameters.Add("@ID", SqlDbType.Interger, 6, "ID");
param.SourceVersion = DataRowVersion.Original;
使用正确的SQL语句创建更新命令并添加参数后,需要将其指定为数据适配器的插入命令: -
Adaptor.UpdateCommand = Updatecmd;
您需要自己阅读这些内容,通过一些示例,这是一个粗略的指南。
下一步是通过数据表枚举,你不需要LINQ,你可以这样做: -
foreach(DataRow row in Dataset.Tables[0].Rows)
{
row["YourColumn"] = YOURVALUE;
}
完成后,您需要调用yout Data Adapter的Update()方法,如下所示: -
DataAdapter.Update(dataset.Tables[0]);
这里发生的是数据适配器调用Update命令并将更改保存回数据库。
请注意,如果希望向数据库添加新行,则需要对数据适配器执行INSERT命令。
这是从我的脑海中粗略编码出来的,所以语法可能略有不同。但希望有所帮助。
答案 2 :(得分:0)
像这样:
DataTable table = new DataTable();
table.Columns.Add("ID", typeof(int));
table.Columns.Add("ProductName");
table.Rows.Add(1, "Chai");
table.Rows.Add(2, "Queso Cabrales");
table.Rows.Add(3, "Tofu");
EnumerableRowCollection<DataRow> Rows = table.AsEnumerable();
foreach (DataRow Row in Rows)
Row["ID"] = (int)Row["ID"] * 2;
答案 3 :(得分:0)
步骤如下: - 创建一个新的DataColumn [^] - 将其添加到数据表的Columns [^]集合中 - 例如使用NewRow [^]创建DataRow [^] - 使用Item [^] indexer根据需要修改行的值 - 将行添加到Rows [^]集合 - 成功修改后的AcceptChanges [^]
答案 4 :(得分:-1)
添加如下所示的列。
dataset.Tables[0].Columns.Add(new DataColumn ("columnname"));
更新列值,如下所示。
for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
dataset.Tables[0].Rows[i]["columnname"] = "new value here";
}
更新数据库
dataset.AcceptChanges();