2010-07-30 87 views
1

如何使用C#执行访问查询?我想创建表格,并从我的访问数据库插入/选择数据。C#访问数据库查询

+1

你必须至少有一些想法,从哪里开始的任何类型的数据库? Google上有很多文章,为什么不添加一些代码来显示你被卡住的地方? – Fionnuala 2010-07-30 15:31:17

+0

我对数据库有所了解,因为我在大学里学习了mySQL和Oracle,并且我知道如何处理它们,但是现在我正在使用C#访问,这对我来说很新...... – sikas 2010-07-30 15:47:49

+1

大多数主要的DB语法都很漂亮类似的几个警告。一般来说,select语句是一个选择语句,天气是在MySQL,MSSQL2005或Oracle中。 – Terrance 2010-07-30 16:27:17

回答

1

这里有两个非常好的开始教程

Here is a good intro into what is actually going on.
Here has some pretty helpful example code.

普罗蒂普:请确保您有,如果他们 尚未安装正确的ODBC驱动程序。我觉得SOOOO傻不搞清楚了这一点,从 开始笑,P

至于对付你DB假设你不是在飞行中所有你需要做的就是在创建数据库创建一个Access数据库访问,保存并将其作为数据源添加到您的应用程序中。 See here

例插入:

var insertStatement = @"insert into familytree (firstname, lastname, city, Tel, Email) values (@firstname, @lastname, @city, @tel, @email); SELECT @@IDENTITY"; 

//Open your connection and command 
using (OleDbConnection connection = new OleDbConnection(connectionString)) 
using (OleDbCommand cmd = new OleDbCommand(insertStatement, connection)) 
{ 
    //set parameters and values 
    var identityQuery = @"SELECT @@IDENTITY"; 
    var identity = -1; 
    cmd.Parameters.Add("@firstname", 'foo'); 
    cmd.Parameters.Add("@lastname", 'foo'); 
    cmd.Parameters.Add("@city", 'foo'); 
    cmd.Parameters.Add("@tel", '6666666'); 
    cmd.Parameters.Add("@email", '[email protected]'); 

    connection.Open(); 

    try{ 
     var numberOfRowsEffected = command.ExecuteNonQuery(); 
     //we should have 1 row effected. 
     if(numberOfRowsEffected>0){ 
      cmd.CommandText = identityQuery; 
      //get the identity 
      identity = (int)cmd.ExecuteScalar(); 
     } 
    }catch(InvalidOperationException ex){ 
     //log and throw: 
     //cant open connection or Cannot execute a command 
     //within a transaction context that differs from the 
     //context in which the connection was originally enliste 
    } 

    return identity; 
} 

同样适用,如果你想创建一个表。只需编写你的create table语句即可。 see here for example并执行。但是,就通常的方法而言,您通常希望让您为大多数简单的应用程序设置表结构,并让您的应用程序处理插入,更新和可能的删除操作。不是说你不应该这样做,但我会尽可能考虑KISS。

哦,这里是一个msdn ref的OleDbCommand类,如果你想知道你还能做什么。
OleDbCommand

+0

+1原型。在64位环境中尤其如此! – kbrimington 2010-07-30 15:37:27

+0

非常适合检索数据,但是如何创建表格并插入数据呢? – sikas 2010-07-30 15:45:40