OleDbConnection conn = new OleDbConnection(); conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Data2.mdb;Persist Security Info=True"; conn.Open();
OleDbCommand cmd = new OleDbCommand("select top 25 * from way where (LEN(aa)> 14)", conn);
OleDbDataReader dr = cmd.ExecuteReader();
int count = 0;
while (dr.Read())
{
string str = dr.GetString(3).ToString();
int b = str.LastIndexOf('-');
if (b > 2 && str.Length > b)
{
str = str.Substring(b, str.Length - b);
string sqlstr = "update way set aa='" + str + "' where bb=" + dr.GetValue(5).ToString();
System.Diagnostics.Debug.Print(sqlstr);
OleDbConnection conn1 = new OleDbConnection();
conn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Data2.mdb;Persist Security Info=True";
conn1.Open();
OleDbCommand cmd1 = new OleDbCommand(sqlstr, conn1);
System.Diagnostics.Debug.Print(cmd1.ExecuteNonQuery().ToString());
//conn1.Close();
}
count++;
}
MessageBox.Show(count.ToString());
conn.Close();运行结果是更新不到数据库的,程序运行以后,执行多次后,后台输出可以看出是更新了,但实际上是没有更新的,好像是没有提交上去!怎么办?
OleDbCommand cmd = new OleDbCommand("select top 25 * from way where (LEN(aa)> 14)", conn);
OleDbDataReader dr = cmd.ExecuteReader();
int count = 0;
while (dr.Read())
{
string str = dr.GetString(3).ToString();
int b = str.LastIndexOf('-');
if (b > 2 && str.Length > b)
{
str = str.Substring(b, str.Length - b);
string sqlstr = "update way set aa='" + str + "' where bb=" + dr.GetValue(5).ToString();
System.Diagnostics.Debug.Print(sqlstr);
OleDbConnection conn1 = new OleDbConnection();
conn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Data2.mdb;Persist Security Info=True";
conn1.Open();
OleDbCommand cmd1 = new OleDbCommand(sqlstr, conn1);
System.Diagnostics.Debug.Print(cmd1.ExecuteNonQuery().ToString());
//conn1.Close();
}
count++;
}
MessageBox.Show(count.ToString());
conn.Close();运行结果是更新不到数据库的,程序运行以后,执行多次后,后台输出可以看出是更新了,但实际上是没有更新的,好像是没有提交上去!怎么办?
解决方案 »
- 如何比较当前月份和表里的最大月份
- C#窗体的鼠标变成"漏斗"状
- C#请问网页如何保存变量值,页面返回后还能读取?
- c# socket
- hibernate问题:Key being added: hibernate.show_sql
- 再来问个有关BIN文件和断点的
- 新手报道 未能找到引用的组件“SpeechLib”。 WindowsFormsApplication1 求解
- 如何把winform整个打印出来,多谢各位
- 规范的问题,大家谈谈自己的感受和见解.谢谢参与,参与有分.
- 现在流传的vs.net final是最终版吗?
- 请教C#问题,谢谢!
- c#做成dll一定要.netframework环境才能用么?
--------------
string sqlstr = "update way set aa='" + str + "' where bb='" + dr.GetValue(5).ToString()"';如果bb是int类型,可以不用加单引号。你没有关后门。你执行后的结果是update way set aa=某个值 where bb=
这句一定要让它执行,
改成 conn1.Close();OleDbconnection数据库连接与其它数据库不同, 它的更新只是写入了内存, 没有写到文件上, 只有连接关闭时, 才写入文件
所以 conn1.Close(); 这句一定要执行
这句是执行了,我帖上来得时候忘记吧注释去掉!还有就食bb的不是字符型,是数字来的,所以不用单引号的!
2、你的dr要关闭,dr.Close(),再更新,不然可能会影响下面的命令。
这条语句,由哪个command对象执行的?我没看到…
bb那里也应该加个单引号