OleDbDataAdapter.UpDates时出错了

wqb1979 2002-09-07 01:30:42
错误信息如下:
更新无法找到 TableMapping[“Table”] 或 DataTable“Table”。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: 更新无法找到 TableMapping[“Table”] 或 DataTable“Table”。

public void RegUser()
{
Conn connstr=new Conn();
OleDbConnection myconn=new OleDbConnection(connstr.UserConn);
OleDbDataAdapter da=new OleDbDataAdapter("SELECT * FROM users",myconn);
DataSet ds=new DataSet();
DataTable dt=new DataTable();
DataRow dr;
OleDbCommandBuilder cb;
myconn.Open();
cb=new OleDbCommandBuilder(da);
da.Fill(ds,"users");
dt=ds.Tables["users"];
dr=dt.NewRow();
dr["username"]=Username;
dr["password"]=Password;
dr["truename"]=Truename;
dr["address"]=Address;
dr["phone"]=Phone;
dr["email"]=Email;
dr["qq"]=Qq;
dr["msn"]=Msn;
dr["homepage"]=Homepage;
dr["friendlist"]=Friendlist;
dr["logincount"]=Logincount;
dr["lastlogintime"]=Lastlogintime;
dr["mp"]=Mp;
dr["money"]=Money;
dr["ison"]=Ison;
dr["job"]=Job;
dr["company"]=Company;
dr["headface"]=Headface;
dr["question"]=Question;
dr["answer"]=Answer;
dr["underwrite"]=Underwrite;
dr["sex"]=Sex;
dr["imgwidth"]=Imgwidth;
dr["imgheight"]=Imgheight;
dr["regtime"]=Regtime;
dr["birthday"]=Birthday;
dt.Rows.Add(dr);//<<-------提示此行出错
da.Update(ds,"users");
dt.Dispose();
ds.Dispose();
da.Dispose();
return;
}
...全文
72 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wqb1979 2002-09-09
  • 打赏
  • 举报
回复
还是自己解决了,原来字段名不能用"password","money",好像以前都没有出现过的这种冲突的
wqb1979 2002-09-09
  • 打赏
  • 举报
回复
我用同样的方法,只是添加纪录的表不同,也会出现
“更新无法找到 TableMapping[“Table”] 或 DataTable“Table””的错误提示,然后我在
OleDbDataAdapter da=new OleDbDataAdapter("SELECT * FROM xxx",myconn);
加了句
da.TableMappings.Add("Table","xxx");
就可以添加了
但是在添加users表时却还是提示"insert into语法错误"
wqb1979 2002-09-08
  • 打赏
  • 举报
回复
很奇怪的是,我加一句ds.AcceptChange()就会回到原来的错误
wqb1979 2002-09-08
  • 打赏
  • 举报
回复
user才是关键字
bigliang 2002-09-08
  • 打赏
  • 举报
回复
如果你使用Access作为数据库的话,据我所知users好像是关键字,你把表的名字改为tbl_users试试,可以Update吗?
saucer 2002-09-08
  • 打赏
  • 举报
回复
something else is wrong,
DataTable dt=new DataTable();
is irrelevant, since you called
dt=ds.Tables["users"];
wqb1979 2002-09-07
  • 打赏
  • 举报
回复
我把DataTable dt=new DataTable();改为DataTable dt;
提示出错的信息不同了
INSERT INTO 语句的语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。

源错误:


行 141: dr["birthday"]=Birthday;
行 142: dt.Rows.Add(dr);
行 143: da.Update(ds,"users");


saucer 2002-09-07
  • 打赏
  • 举报
回复
that error normally occurs when you try to update like this
da.Update(ds);

but your code looks fine, I could not reproduce your error, but do see

INFO: Exceptions That Are Raised by the Update Method of the DataAdapter with Null Objects
http://support.microsoft.com/default.aspx?scid=KB;EN-US;q310376&
wqb1979 2002-09-07
  • 打赏
  • 举报
回复
我也找了半天,也没发现什么:(
oledb读取dbf文件报错--“外部表不是预期的格式” 我的代码如下 string ole_connstring=String.Empty; ole_connstring = @"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBASE IV;Data Source="+FilePath; OleDbConnection ole_conn = new OleDbConnection(ole_connstring); ole_conn.Open(); string insertsql="Insert into ["+tableName+"] (.......; OleDbCommand da=new OleDbCommand(insertsql,ole_conn); da.ExecuteNonQuery(); DBF版本问题,用VFP9的OLEDB即可 方法一: 进入VFP USE TT COPY TO NEWTT TYPE FOX2X 此方法是把表的文件版本转为新的VFP文件版本解决版本问题。 方法二: 升级JET 引擎到SP8,安装MDAC 2.8,到MS的网站去找 1、VFP9的驱动是最新的,各种版本的DBF均可读出; 2、你的连接字串是用JET的引擎,故要升级JET及MDAC; 3、所需文件在MS的网站均有下载。 方法三: 安装vfpoledb.exe(VFP9的OLEDB),在项目中引用Microsoft OLE DB Provider for FoxPro 7.0 Type Library 1.0,然后使用如下代码: OleDbConnection con = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=D:\\2006工程\\南京建设质量监督站\\资料;Collating Sequence=MACHINE"); con.Open(); DataTable dtQY=new DataTable(); OleDbDataAdapter adapt=new OleDbDataAdapter(); adapt.MissingSchemaAction=MissingSchemaAction.AddWithKey; adapt.SelectCommand = new OleDbCommand("select * from 200512.DBF",con); adapt.Fill(dtQY); adapt.Dispose(); DataView dvQY = dtQY.DefaultView; dtQY.Dispose(); con.Close();

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧