(.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数据库中的方法和代码? 展开
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数据库中的方法和代码? 展开
展开全部
//我想你搞错了,你那个已经是往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;
这两行是告诉数据库你将要进行什么操作吧?好像没有那两行也行。
//////////////////////////////////////////////////////////
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;
这两行是告诉数据库你将要进行什么操作吧?好像没有那两行也行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果经常用ACCESS的朋友应该知道我们的SQL语句有时候需要这样select * from [book],问题就出在这个中括号了。但是在SQL中我们是不需要注意这个问题的。
最后发现OleDbCommandBuilder的两个属性可以给SQL查询串中空格或者保留标记加个指定前后缀的,你的只需要加上两句就ok了。
最后发现OleDbCommandBuilder的两个属性可以给SQL查询串中空格或者保留标记加个指定前后缀的,你的只需要加上两句就ok了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为Access数据库文件添加ASPNET帐户,并将修改权限赋于该帐户。另外还需要为该数据库文件存放的目录添加写的权限,因为在访问数据库时还会生成一个.ldb的文件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
access数据库里面还真没用过这个呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询