关于自动生成UpdataCommand?

flyingjust 2003-08-15 02:40:18
...
OleDbDataAdapter oleadpUpdate=null;
OleDbCommandBuilder oleCmdBulder=null;
strSQL="select c1,c2,c3 from TB_TEST"
m_oleCon.Open();
oleadpUpdate=new OleDbDataAdapter(strSQL,m_oleCon);
oleCmdBulder =new OleDbCommandBuilder(oleadpUpdate);
OleDbCommand cmd=oleCmdBulder.GetUpdateCommand();**********
当m_oleCon连接到Access时没问题
但是连接到Oracle时*****处报错 :
{"对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成。" } 这是这么回事?
...全文
43 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingjust 2003-08-15
  • 打赏
  • 举报
回复
我得查询方法!! 现在改用NET的 OracleCleint
OracleConnection m_oleCon=new OracleConnection("data source=cctvdb;User ID=cctvdba;password=cctvdba");
m_oleCon.Open();
String strSql="Select * From doc_bbs";
OracleCommand cmd=new OracleCommand(strSql,m_oleCon);
OracleDataAdapter m_oleAdp=new OracleDataAdapter(cmd);
m_oleAdp.Fill(ds,"doc_bbs");
sds
if(ds.Tables["doc_bbs"].Columns[0].Unique==true)\\
{

}
flyingjust 2003-08-15
  • 打赏
  • 举报
回复
我用向导看看 可以身成 UpdataCommand!!!
flyingjust 2003-08-15
  • 打赏
  • 举报
回复
我访问Oracle数据库 我肯定定义了主建的 c1是主建 我将select c1,c2,c3 from TB_TEST
的DataSet进行分析
m_dsTemp.Tables[0].Columns[j].Unique;发现没有主建!!!!
但是同样是ACCESS数据库就有主建 c1
我用的oracle8i 这不会是MS为了打击Oracle故意的吧!!
91bct 2003-08-15
  • 打赏
  • 举报
回复
你可以用OleDbAdapter向导来看看能生成几个命令,如果没有updatecommand,那么就说明你在查表时用的可能是联合查询(或其他一些比较复杂的查询语句都会出现不能生成除了selectCommand命令之外的命令)或者此表没有主键。所以我建议尽量不要用OleDbCommandBuilder。
chenzf 2003-08-15
  • 打赏
  • 举报
回复
up!
flyingjust 2003-08-15
  • 打赏
  • 举报
回复
是不是Oracle没返回 主建信息? 能在Select语句里指定主建么?
popu2 2003-08-15
  • 打赏
  • 举报
回复
一定要加个sqlbuilder啊,查msdn吧
popu2 2003-08-15
  • 打赏
  • 举报
回复
一定要加个sqlbuilder啊
flyingjust 2003-08-15
  • 打赏
  • 举报
回复
我得表里有主键阿!!!
camark 2003-08-15
  • 打赏
  • 举报
回复
同意snof(雪狼) 没有主键只能生成select语句
雪狼1234567 2003-08-15
  • 打赏
  • 举报
回复
你要在你的表里定义主键,否则的话不能使用自动生成update命令
rqxiang 2003-08-15
  • 打赏
  • 举报
回复
gz

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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