标题:如何判断ACCESS数据库中表是否存在?
只看楼主
wwx024
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2008-6-15
 问题点数:0 回复次数:4 
如何判断ACCESS数据库中表是否存在?
我有动态创建一个数据库coldlead.mdb,然后创建一个表orderlist,第一次运行正常,第二次运行就报错:说表orderlist已存在。
我想首先判断一个表是否存在,如果不存在就创建,如果存在就不用创建。
//创建ACCESS表            
            ADOX.Table table = new ADOX.Table();
            table.Name = "orderList";
            ADOX.Column column = new ADOX.Column();
            column.ParentCatalog = cat;
            column.Name = "RecordId";
            column.Type = DataTypeEnum.adInteger;
            column.DefinedSize = 9;
            column.Properties["AutoIncrement"].Value = true;
            table.Columns.Append(column, DataTypeEnum.adInteger, 9);//增加一个自动增长的字段
            table.Keys.Append("FirstTablePrimaryKey", KeyTypeEnum.adKeyPrimary, column, null, null);//设置主键
            table.Columns.Append("Accept Order Date", DataTypeEnum.adDate, 0);//add a column of accept order date
            table.Columns.Append("Production Order", DataTypeEnum.adWChar,10);//add a column of Production Order
            table.Columns.Append("Product Spec",DataTypeEnum.adWChar,10);//add a column of the product spec
            table.Columns.Append("Product Unit",DataTypeEnum.adWChar,10);//add a loumun of the product unit
            table.Columns.Append("Product Number",DataTypeEnum.adInteger,3);//add a column of the product number
            table.Columns.Append("Delivery Date",DataTypeEnum.adDate,0);//add a column of the delivery date
            cat.Tables.Append(table);
            

            MessageBox.Show("数据库表:" + tableName + "已经创建成功!");
            cn.Close();  
            
            //connect the databank
            OleDbConnection myConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data source='" + Application.StartupPath + @"\ColdLead.mdb'");
            //insert data to the table            
            string myExecuteQuery = "insert into [orderList]([Accept Order Date],[Production Order],[Product Spec],[Product Unit],[Product Number],[Delivery Date])values(2008-10-10,'wwx','122ls/45r','gr',50,2008-11-20)";
            myConnection.Open();
            OleDbCommand myCommand=new OleDbCommand (myExecuteQuery,myConnection);      
            
            
            myCommand.ExecuteNonQuery();


            OleDbDataAdapter da = new OleDbDataAdapter("select * from orderList", myConnection);
            //control data with DataSet
            DataSet ds = new DataSet();
            da.Fill(ds);
            //show the data in the dataGridView
            dataGridView1.DataSource = ds.Tables[0].DefaultView;
            //close the databank connect
            myConnection.Close();
搜索更多相关主题的帖子: 数据库 中表 ACCESS 判断 
2008-10-29 09:13
styleyang
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2008-10-14
得分:0 
不懂````关注```
   
2008-10-29 12:20
zhutoudd
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-6-24
得分:0 
有一种方法你可以加try..catch
2008-10-29 14:03
zhutoudd
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-6-24
得分:0 
或者你先加try直接往你预计得表中写入一条数据,如果没成功就catch了,你就可以创建表等一系列操作了。
2008-10-29 14:05
Y08M09D26
Rank: 2
等 级:论坛游民
帖 子:118
专家分:13
注 册:2008-9-26
得分:0 
try. . . catch 简单好用

也可使用OleDbConnection 对象的 GetOleDbSchemaTable 方法 取得所有表名称 然后判断是否已经存在
http://msdn.(VS.80).aspx
2008-10-29 14:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-241226-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.122654 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved