作者Uihc (我 有我的倔强...)
看板C_Sharp
标题[除错] update资料库
时间Wed Nov 29 17:21:24 2006
又来麻烦各位提供意见了~
我的资料库(access)里有12张资料表,要写资料更新的功能
update的动作就是把每一张资料表,地址资料栏位中的"x邻"拿掉
地址资料内容也是有规律的
ex:台北市xx邻xx路x段xxx号
所以我用的方法是
利用Substring去分别截取"台北市"这一段字串以及"邻"之後剩余的字串
接着再把这两段截取出来的字串合并後,更新回资料表
我遇到的问题就是如下方列示的程式,当我加入以下两行
OleDbCommand updateComm = new OleDbCommand(UpdateAddrQuery, myConn);
updateComm.ExecuteNonQuery();
预期中应该是资料表中的每笔资料都去掉邻才对
却出现这个结果
http://photo.xuite.net/chiulin.wei/1190750/2.jpg
有试过把这两行注解掉去输出 strOldAddr以及strNewAddr到表单上都很正常
http://photo.xuite.net/chiulin.wei/1190750/3.jpg
也在注解的情况下去trace UpdateAddrQuery内容
http://photo.xuite.net/chiulin.wei/1190750/4.jpg
完整程式内容如下:
//把资料表名称存在阵列中
String[] Area = new String[12] { "客户1", "客户2", "客户3", "客户4", "客户5",
"客户6", "客户7", "客户8", "客户9", "客户10",
"客户11", "客户12" };
String strOldAddr = "";
//用来存放资料表每笔记录的原始资料
String strNewAddr = "";
//用来存放要更新回资料表的资料
string SQLquery = "";
//SQL statement
String UpdateAddrQuery = "";
//SQL statement
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=|DataDirectory|\\customer.mdb";
OleDbConnection myConn = new OleDbConnection(connStr);
//foreach用来巡览每一张资料表
foreach (String a in Area)
{
myConn.Open();
//栏位1放的就是地址资料,
//利用foreach去select出12张资料表以进行资料更新的动作
SQLquery = "SELECT 栏位1 From " + a + ";";
OleDbCommand myCommand = new OleDbCommand(SQLquery, myConn);
OleDbDataReader myReader = myCommand.ExecuteReader();
//没有用while(myReader.Read())是因为资料有很多笔
//所以利用for回圈先测试每张资料表的前十笔更新资料是否有正常
for (int i = 0; i < 10; i++)
{
myReader.Read();
strOldAddr = myReader[0].ToString(); //取出原始地址资料
int city = strOldAddr.IndexOf("市"); //找出"市"的索引位置
int lin = strOldAddr.IndexOf("邻"); //找出"邻"的索引位置
//从原始资料截取字串,放到strNewAddr
strNewAddr = strOldAddr.Substring(0, city + 1) +
strOldAddr.Substring(lin + 1, strOldAddr.Length - lin - 1);
UpdateAddrQuery = "UPDATE " + a + " Set 栏位1 = '" + strNewAddr + "';";
//有问题的叙述
OleDbCommand updateComm = new OleDbCommand(UpdateAddrQuery, myConn);
updateComm.ExecuteNonQuery();
}
//end for
myReader.Close();
myConn.Close();
}
//end foreach
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.64.235
※ 编辑: Uihc 来自: 140.112.64.235 (11/29 17:25)
1F:推 saitoh:update没有加where.... 11/29 20:41
2F:推 Uihc:啊...对厚...问题可能就是出在这里.来去试试 感恩..<(_ _)> 11/29 23:46