关于ACCESS和SQL SERVER 2000在后台代码中添加记录区别的问题

anncesky 2007-05-06 03:01:25
在SQL SERVER 2000中这段代码是正确的

SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conStr"]);
SqlDataAdapter sda = new SqlDataAdapter("select top 0 * from qquser", con);

DataTable dt = new DataTable();
sda.Fill(dt);
DataRow dr = dt.NewRow();
dr["qqname"] = Request.Form["username"];
dr["qqpwd"] = Request.Form["password"];
//dr["isonline"] = 0;
//dr["headpic"] = this.ddlHeadPic.SelectedValue;
//dr["date"] = DateTime.Now;
SqlCommandBuilder cb = new SqlCommandBuilder(sda);
dt.Rows.Add(dr);
sda.Update(dt);

但是在ACCESS中 下列代码却不在编译中出错
     OleDbConnection con = new OleDbConnection(ConfigurationManager.AppSettings["conStr"]);
OleDbDataAdapter sda = new OleDbDataAdapter("select top 0 * from qquser", con);

DataTable dt = new DataTable();
sda.Fill(dt);
DataRow dr = dt.NewRow();
dr["qqname"] = Request.Form["username"];
dr["qqpwd"] = Request.Form["password"];
//dr["isonline"] = 0;
//dr["headpic"] = this.ddlHeadPic.SelectedValue;
//dr["date"] = DateTime.Now;
OleDbCommandBuilder cb = new OleDbCommandBuilder(sda);
dt.Rows.Add(dr);
sda.Update(dt);

这是为什么啊,要怎么样才能在ACCESS中以dataadapter.update(dt)形式添加记录?
...全文
219 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
anncesky 2007-05-10
  • 打赏
  • 举报
回复
没人知道吗?
anncesky 2007-05-10
  • 打赏
  • 举报
回复
那就用sql语句好了...结了
anncesky 2007-05-07
  • 打赏
  • 举报
回复
...相反???不会吧

你喜欢看那些比如 values('"+...+"','......."+...+"')"
这样的东西???
这不是一两个哦,不2,3十个哦,开玩笑吧
dddd218 2007-05-07
  • 打赏
  • 举报
回复
直接写SQL很容易出错的郁闷,用sda.update(DT)
这样看起来会清楚很多的啊,错误也好查啊

***********************

恰恰相反
anncesky 2007-05-07
  • 打赏
  • 举报
回复
直接写SQL很容易出错的郁闷,用sda.update(DT)
这样看起来会清楚很多的啊,错误也好查啊
anncesky 2007-05-07
  • 打赏
  • 举报
回复
哈,用values(@a, @b),比用values('"+...+"','......."+...+"')"更占资源
一般不用存储过程,是不用嘀
只在防注时用

你也是一知半解哦
dddd218 2007-05-07
  • 打赏
  • 举报
回复
你喜欢看那些比如 values('"+...+"','......."+...+"')"
******************
没人会喜欢看values('"+...+"','......."+...+"')"的,写出这样代码人只能说明刚接触了一点.net的皮毛中的皮毛,就像你用OleDbCommandBuilder一样。
我看到的都是values(@a, @b),呵呵。
dddd218 2007-05-06
  • 打赏
  • 举报
回复
如有我要添加N多的列
那就是要用SQL语句一个一个写出来??????

*************************
那是当然的,写sql语句可以提高你对数据操作的控制能力。
如果你使用OleDbCommandBuilder,本质上它最后也要构建sql语句来执行,只不过这个构建由系统自动进行罢了。
anncesky 2007-05-06
  • 打赏
  • 举报
回复
...真不行吗??不可以吧
anncesky 2007-05-06
  • 打赏
  • 举报
回复
.............如有我要添加N多的列
那就是要用SQL语句一个一个写出来??????

郁闷,应该可以用sda.update(dt)这么形式吧

asp中就是可以用这种形式写入ACCESS的啊
dddd218 2007-05-06
  • 打赏
  • 举报
回复
不要使用OleDbCommandBuilder,使用OleDbCommand进行数据库的添加、更新、删除、查询操作好了
anncesky 2007-05-06
  • 打赏
  • 举报
回复
top 0是不行的,但是我试过了,top 1是可以的啊
我出试了直接select * from qquser
但是还是出错,提示insert into语句出错,
dddd218 2007-05-06
  • 打赏
  • 举报
回复
access支持top关键字吗?
select top 0 * from qquser
anncesky 2007-05-06
  • 打赏
  • 举报
回复
说是insert语句出错,我郁闷ing

62,052

社区成员

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

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

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

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