(.net关于用DataRow row = table.NewRow();方法插入不同数据库导致失败)高人进来!

我在线等待求教!~请帮忙~sql没有问题,在access数据库中写入失败.这个问题我已经找到问题所在,但还是解决不了:代码:protectedvoidButton1_Cl... 我在线等待求教!~请帮忙~
sql没有问题,在access数据库中写入失败.
这个问题我已经找到问题所在,但还是解决不了:

代码:
protected void Button1_Click(object sender, EventArgs e)
{

OleDbDataAdapter adapter = new OleDbDataAdapter("select * from book", "provider=microsoft.jet.oledb.4.0;data source=D:\\asp.netWeb\\Abook\\data_base\\lyb.mdb");
OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

DataTable table = new DataTable();
DataSet ds = new DataSet();
adapter.Fill(ds, "book");
table = ds.Tables["book"];

DataRow row = table.NewRow();
row["title"] = "xingkong";
row["memo"] = "为什么不好用";
table.Rows.Add(row);
adapter.Update(table); //提示出错的地方--

}

--------------------------------------------------------
上面的方法如果写入sql数据库没有任何问题,但如果写入access数据库则出现提示错误.
OleDbCommandBuilder和sql数据库的SqlCommandBuilder我分的清,不是声明的错误,引用空间也没有问题!
难道这样的插入数据的方法对access数据库没有办法实现了么?
我的表字段比较多,用 insert 方法插入容易写错,用上面的方法对access就是不行么?
在线求教~?感激不尽~,我最终的需求就是:用上面的方法,把数据写到access数据库里!
我又得到了一些进展,我发现我的代码已经把ds.Tables["book"]这个ds表写入数据了,但是如何把DataSet表格写入数据库?关键就在这.
谁能知道把DataSet中的表格写入Access数据库中的方法和代码?
展开
 我来答
jonile
2007-06-12 · TA获得超过431个赞
知道小有建树答主
回答量:372
采纳率:0%
帮助的人:393万
展开全部
//我想你搞错了,你那个已经是往access数据库中fill一行数据而不是update,不知道你同不同意?修改如下:
//////////////////////////////////////////////////////////
OleDbDataAdapter adapter = new OleDbDataAdapter("select * from book", "provider=microsoft.jet.oledb.4.0;data source=D:\\asp.netWeb\\Abook\\data_base\\lyb.mdb");
OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

DataTable table = new DataTable();
DataSet ds = new DataSet();
adapter.Fill(ds, "book");
table = ds.Tables["book"];

OleDbCommand command = new OleDbCommand("INSERT INTO book (title, memo) " + "VALUES (?, ?)");
adapter.InsertCommand = command;

DataRow row = table.NewRow();
row["title"] = "xingkong";
row["memo"] = "为什么不好用";
table.Rows.Add(row);
adapter.Fill(table);
///////////////////////////////////////////////////////////
数据库我也刚看,在我理解中
OleDbCommand command = new OleDbCommand("INSERT INTO book (title, memo) " + "VALUES (?, ?)");
adapter.InsertCommand = command;
这两行是告诉数据库你将要进行什么操作吧?好像没有那两行也行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
scev
2007-06-17 · TA获得超过996个赞
知道小有建树答主
回答量:288
采纳率:0%
帮助的人:221万
展开全部
如果经常用ACCESS的朋友应该知道我们的SQL语句有时候需要这样select * from [book],问题就出在这个中括号了。但是在SQL中我们是不需要注意这个问题的。

最后发现OleDbCommandBuilder的两个属性可以给SQL查询串中空格或者保留标记加个指定前后缀的,你的只需要加上两句就ok了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangyuii
2007-06-13 · TA获得超过167个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:222万
展开全部
为Access数据库文件添加ASPNET帐户,并将修改权限赋于该帐户。另外还需要为该数据库文件存放的目录添加写的权限,因为在访问数据库时还会生成一个.ldb的文件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6f75ac8fa
2007-06-11 · TA获得超过2513个赞
知道大有可为答主
回答量:1.3万
采纳率:0%
帮助的人:4033万
展开全部
access数据库里面还真没用过这个呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式