急问高手:在使用Oracle数据库时,是不是不能使用OleDbDataAdapter.Update()函数阿?或是有什么要注意的地方?我在使用的时候总是报错:
System.InvalidOperationException: Dynamic SQL generation is not supported against a SelectCommand that does not return any base table information.

解决方案 »

  1.   

    string sCon = string.Concat(//"Provider=MSDAORA.1;",
    "Password=xxx;",
    "User ID=xxx;",
    "Data Source=xxx;",
    "Persist Security Info=True");
    this.Text = sCon;
    this.listBox1.Items.Clear();
    try
    {
    //用oracle支持连接
    System.Data.OracleClient.OracleConnection ocnMain = new System.Data.OracleClient.OracleConnection(sCon);
    ocnMain.Open();
    //打开Command
    System.Data.OracleClient.OracleCommand cmdMain = new System.Data.OracleClient.OracleCommand();
    cmdMain.Connection = ocnMain;
    cmdMain.CommandText = "SELECT distinct table_name FROM cols";
    //
    System.Data.OracleClient.OracleDataReader odrMain = cmdMain.ExecuteReader();
    while (odrMain.Read())
    {
    this.listBox1.Items.Add(odrMain.GetString(0));
    this.listBox1.SelectedIndex = this.listBox1.Items.Count - 1;
    Application.DoEvents();
    System.Threading.Thread.Sleep(50);
    }
    //关闭连接
    ocnMain.Close(); }
    catch(System.Exception eException)
    {
    MessageBox.Show(eException.Message.ToString());
    }********************************************************************
    *TryMyBestToKnowSomethingAboutEverythingAndEverythingAboutSomething! 
    ********************************************************************
      

  2.   

    我今天也遇到过,后来就这样解决了~~********************************************************************
    *TryMyBestToKnowSomethingAboutEverythingAndEverythingAboutSomething! 
    ********************************************************************
      

  3.   

    可以的,DataAdapter和使用什么数据库没什么关系:
    DataAdapter和多个DbCommand相关联,而Command和DbConnection相关联(依情况使用Ole,SQL和Oracle的Command),需要注意的就是:
    1。Connection要正确(能够连接到数据库)
    2。Command正确(数据库能够执行的SQL语句)
    3。DataAdapter和多个Command相关联(一般4个,select,delete,updata和insert),而OleDbDataAdapter.Update()函数执行除了select以外的三个(当然,他会选择需要做的处理)
    4。DataAdapter的结果要和一个DataSet(或者DataTable)相关联,其实是将DataTable的内容Update到数据库中去
    因此:
    DataSet——〉DataAdapter——〉DbCommand——〉DbConnection都需要,也都需要注意一下
      

  4.   

    谢谢大家!不过还是有问题!程序在Sqlserver中因为有主健可以运行,但在Oracle中也设置主健了,但报错同Sqlserver中没设置主健的相同。所以一直疑惑,还望高手来解或