【发布时间】:2012-11-15 23:03:39
【问题描述】:
我有一个需要在列中存储值的应用程序。代码中值为字符串,列数据类型为nvarchar。
foreach (DataRow row in dt.Rows)
{
//Generate a random length for randomKey range between 3 and 6 characters
Random randKey = new Random();
int randKeyLength = randKey.Next(3, 6);
//calculate randomKeyString
String randomKeyString = md5Prepare.gen_randomKeyString(randKeyLength);
//add randomKeyString to database
row["randomKey"] = randomKeyString;
}
当我检查数据库时,“randomKey”列没有改变。这里有什么问题?
【问题讨论】:
-
When I check the database, the column "randomKey"- 我在数据库中没有看到更新代码,你是如何更新数据库的? -
您只是在您的
DataTable中更新DataRow(您的数据的所有内存中 表示形式) - 您还没有将它存储回数据库! -
没有行["randomKey"] = randomKeyString;更改该特定行的列值?
-
它会更改
DataRow中该列的值 - 在内存 (RAM) 中 - 但 NOT 在数据库表中。查看this basic ADO.NET tutorial 之类的内容,了解使用“原始”ADO.NET 访问数据库的基础知识
标签: c# sql sql-server datatable datarow