首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

C# 访问数据库

2023-11-10 来源:花图问答

1. 首先引用和生命system.data.sqlClient

2. 使用sqlconnect类链接,sqlcommand类执行SQL命令,最后结果返回给sqlDataReader类或者是其他类

 

3.SqlConnect类

在构造时传入链接库字符串,也可以定义后通过设置connectstring属性来设置。

open(),close()。

4. sqlCommand类

在构造时传入SQL命令和SqlConnection类对象,也可以定义后通过CommandText和Connection属性来设置

执行SQL命令得到的结果     SqlDataReader ExecuteReader();

·  

SqlDataReader类

得到共有多少列          FieldCount属性

得到第i列的列名         string GetName(int i)

得到第i列的数据类型  Type GetFieldType(int i)

判断第i列是否为空     bool IsDBNull(int i)

得到第i列的数据        Object GetValue(int i)也可以直接sr[i].ToString()

前进到下一列            bool Read()

关闭                         void Close()

C# 访问数据库

标签:

小编还为您整理了以下内容,可能对您也有帮助:

c#中怎么连接到sqlite数据库

本文实例讲述了C#简单访问SQLite数据库的方法。分享给大家供大家参考,具体如下:

下载最新版SQLite(http://www.sqlite.org/download.html),其他版本也可以,这里使用的版本是sqlite-3_6_6_1

a.解压后copy c:\sqlite-3_6_6_1

b.进入cmd模式,进入sqlite-3_6_6_1目录,执行sqlite3 mytest.db

c.

create table test (seq int,desc varchar(8));

insert into mytable1 values (1,'item');

资料建立完成

2.下载System.Data.SQLite(http://sqlite.phxsoftware.com/),安装,安装后里面会有详细的DEMO和文档。请详细查看。

3.将mytest.db复制到Bin/Debug目录下。

4.打开VS2005,参考System.Data.SQLite安装目录下的System.Data.SQLite.DLL

using System.Data.SQLite;

SQLiteConnection cnn = new SQLiteConnection();

cnn.ConnectionString = @"Data Source=mytest.db;Pooling=true;FailIfMissing=false"

cnn.Open();

SQLiteCommand cmd = new SQLiteCommand();

cmd.Connection = cnn;

cmd.CommandText = "SELECT * FROM test";

SQLiteDataAdapter da = new SQLiteDataAdapter();

da.SelectCommand = cmd;

DataSet ds = new DataSet();

da.Fill(ds);

// 分页查询显示语句

Select * From test Limit 10 Offset 10;

以上语句表示从Account表获取数据,跳过10行,取10行

C#访问局域网中的Access数据库

远程访问access数据库前提要数据库所在目录共享,且访问者拥有写权限。

1.在list.mdb所在主机创建一个共享目录(赋予写权限),并映射到本地;

2.连接语句:

db="z:/list.mdb" '数据库文件位置(z为你映射的盘符)

connstr="DBQ="+db+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"

不过猜你想要访问的access数据库所在的主机你不能随便使用吧

请教C#、WCF高手,如何访问远程服务器上的数据库

两种方式:1.IP+SID方式 2.配置链接方式

1..IP+SID方式

[csharp] view plaincopyprint?

DbHelperOracle.connectionString = string.Format(@"Data Source=(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = {0})(PORT = 1521))

)

(CONNECT_DATA =

(SID = {1})

(SERVER = DEDICATED)

)

);User Id={2};Password={3};",

txtDBServerIP.Text.Trim(), txtOracleSID.Text.Trim(), txtDBUserName.Text.Trim(), txtDBPassword.Text.Trim());

这种方式不需要在Oracle Net Manager管理中添加链接配置信息。

2. 2.配置链接方式,

在Oracle Net Manager管理中添加链接配置信息,然后链接字符串如下写法:

[csharp] view plaincopyprint?

Data Source=TORCL;User Id=myUsername;Password=myPassword;

另外其他的连接方式,参考如下,从其他网站转来的:

Oracle连接字符串总结

Oracle XE

标准连接

Oracle XE(或者"Oracle Database 10g Express Edition")是一个简单免费发布的版本。

以下是语法格式:

Driver=(Oracle in XEClient);dbq=111.21.31.99:1521/XE;Uid=myUsername;Pwd=myPassword;

ODBC

新版本连接方式

以下是语法格式:

Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;

老版本连接方式

以下是语法格式:

Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;

OLE DB, OleDbConnection (.NET)

标准安全连接

此连接方式使用来自微软的Provider。

以下是语法格式:

Provider=msra;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;

信任连接

以下是语法格式:

Provider=msra;Data Source=MyOracleDB;Persist Security Info=False;Integrated Security=Yes;

标准安全连接

此连接方式使用来自Oracle的Provider。

以下是语法格式:

Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;

信任连接

以下是语法格式:

Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;

以下是语法格式:

Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myHost)(PORT=myPort)))(CONNECT_DATA=(SID=MyOracleSID)(SERVER=DEDICATED)));User Id=myUsername;Password=myPassword;

Oracle.DataAccess.Client.OracleConnection

标准连接

以下是语法格式:

Data Source=TORCL;User Id=myUsername;Password=myPassword;

带integrated security的连接

以下是语法格式:

Data Source=TORCL;Integrated Security=SSPI;

带 ODP.NET 不带 tnsnames.ora的连接

以下是语法格式:

Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;

OracleConnection, Oracle Data Provider, ODP.NET, System.Data.OracleClient.OracleConnection

标准连接

以下是语法格式:

Data Source=MyOracleDB;Integrated Security=yes

仅在Oracle8i release 3 或更高版本

指明用户密与密码的连接

以下是语法格式:

Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;Integrated Security=no;

这是另一种连接方式不依赖你的DNS.You create a connection string based on the format used in the tnsnames.ora file without the need to actually have one of these files on the client pc.

以下是语法格式:

SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;

Some reported problems with the one above and Visual Studio. Use the next one if you've encountered problems.

以下是语法格式:

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;

使用连接池

连接池服务如果找不到一个完全匹配连接字符串的连接,他将会创建一个。如果能找到该连接,将会重新使用。

以下是语法格式:

Data Source=myOracleDB;User Id=myUsername;Password=myPassword;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2;

Windows验证

以下是语法格式:

Data Source=myOracleDB;User Id=/;

特权连接

使用SYSOPER的特权

以下是语法格式:

Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSOPER;

利用密码终止函数

当第一次打开连接时,当打开链接后,一个密码过期错误被抛出,捕获这个错误并执行OpenWithNewPassword命令行设置新密码。

以下是语法格式:

Data Source=myOracleDB;User Id=myUsername;Password=myPassword;

oConn.OpenWithNewPassword(sTheNewPassword);

代理验证

以下是语法格式:

Data Source=myOracleDB;User Id=myUsername;Password=myPassword;Proxy User Id=pUserId;Proxy Password=pPassword;

Core Labs OraDirect (.NET)

标准连接

以下是语法格式:

User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;

Data Shape

MS Data Shape

以下是语法格式:

Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;User Id=myUsername;Password=myPassword;

C# 如何访问并操作oracle数据库....希望能说详细一点,我是一个超级超级菜鸟.....

这个不太好说,我给你写点ADO.NET的结构和关系吧,你看了应该会有点思路。
一、ADO.NET 结构
两个组件:
1、.NET Framework 数据提供程序
2、DataSet

二、.NET Framework 数据提供程序
NET Framework 数据提供程序是专门为数据处理以及快速地只进、只读访问数据而设计的组件。
1、Connection
2、Command
3、DataAdapter
4、DataReader

三、Connection 对象
是开启程序和数据库之间的连结
没有利用连结对象将数据库打开,是无法从数据库中取得数据的
这个对象在ADO.NET的最底层
可以自己产生这个对象,或是由其它的对象自动产生

四、Command 对象
架构在Connection对象上
向数据库发出操作指令(增、删、改、查)
呼叫存在数据库中的预存程序等
透过连结到数据源的Connection对象来下命令
Connection连结到哪个数据库,Command对象的命令就下到哪里

五、DataAdapter 对象
架构在Command对象上,并提供了许多配合DataSet使用的功能
在数据源于DataSet之间执行数据传输的工作
它可以透过Command对象下达命令后,并将取得的数据放入DataSet对象中

六、DataReader 对象
一次一笔向下循序的读取数据源中的数据
这些数据是只读的,并不允许作其它的操作
节省资源而且效率很好
可以降低网络的负载

七、DataSet
这个对象架构在DataAdapter对象上
可以视为一个暂存区(Cache)
可以把从数据库中所查询到的数据保留起来
可以将整个数据库显示出来
可以储存多个Table
可以透过DataAdapter对象取得表结构
可以记录数据表间的关联
本身不具备和数据源沟通的能力

例子:
string ConnectionString
= "Data Source=xxx;Persist Security Info=True;User ID=xx;Password=xx";

DataSet ds = new DataSet();
OracleConnection conn;
OracleDataAdapter da;
DataTable table = new DataTable();
OracleCommand oraCmd;

conn = new OracleConnection( ConnectionString );
conn.Open();

da = new OracleDataAdapter( "select t.* from cinfo_t t", conn );
ds.Clear();
da.Fill( ds, "UserInfo" );
conn.Close();
this.dataGridView1.DataSource = ds.Tables["UserInfo"];
-------------------------------------------------------
if( conn.State == ConnectionState.Closed )
{
conn.Open();
}
oraCmd = new OracleCommand( "truncate table xx", conn );
oraCmd.Transaction = transaction;

oraCmd.ExecuteNonQuery();

------------------------------------------------------------
DataTable dt = ( DataTable )dataGridView1.DataSource;
OracleCommandBuilder bu = new OracleCommandBuilder( da );
da.Update( ds.Tables["UserInfo"] );

以上希望对你有帮助,另外你可以去我的文库中找相关的文档看看,我传过几个ADO.NET 的文档,你看了之后应该就熟悉如何对数据库进行操作了。

C# 如何访问并操作oracle数据库....希望能说详细一点,我是一个超级超级菜鸟.....

这个不太好说,我给你写点ADO.NET的结构和关系吧,你看了应该会有点思路。
一、ADO.NET 结构
两个组件:
1、.NET Framework 数据提供程序
2、DataSet

二、.NET Framework 数据提供程序
NET Framework 数据提供程序是专门为数据处理以及快速地只进、只读访问数据而设计的组件。
1、Connection
2、Command
3、DataAdapter
4、DataReader

三、Connection 对象
是开启程序和数据库之间的连结
没有利用连结对象将数据库打开,是无法从数据库中取得数据的
这个对象在ADO.NET的最底层
可以自己产生这个对象,或是由其它的对象自动产生

四、Command 对象
架构在Connection对象上
向数据库发出操作指令(增、删、改、查)
呼叫存在数据库中的预存程序等
透过连结到数据源的Connection对象来下命令
Connection连结到哪个数据库,Command对象的命令就下到哪里

五、DataAdapter 对象
架构在Command对象上,并提供了许多配合DataSet使用的功能
在数据源于DataSet之间执行数据传输的工作
它可以透过Command对象下达命令后,并将取得的数据放入DataSet对象中

六、DataReader 对象
一次一笔向下循序的读取数据源中的数据
这些数据是只读的,并不允许作其它的操作
节省资源而且效率很好
可以降低网络的负载

七、DataSet
这个对象架构在DataAdapter对象上
可以视为一个暂存区(Cache)
可以把从数据库中所查询到的数据保留起来
可以将整个数据库显示出来
可以储存多个Table
可以透过DataAdapter对象取得表结构
可以记录数据表间的关联
本身不具备和数据源沟通的能力

例子:
string ConnectionString
= "Data Source=xxx;Persist Security Info=True;User ID=xx;Password=xx";

DataSet ds = new DataSet();
OracleConnection conn;
OracleDataAdapter da;
DataTable table = new DataTable();
OracleCommand oraCmd;

conn = new OracleConnection( ConnectionString );
conn.Open();

da = new OracleDataAdapter( "select t.* from cinfo_t t", conn );
ds.Clear();
da.Fill( ds, "UserInfo" );
conn.Close();
this.dataGridView1.DataSource = ds.Tables["UserInfo"];
-------------------------------------------------------
if( conn.State == ConnectionState.Closed )
{
conn.Open();
}
oraCmd = new OracleCommand( "truncate table xx", conn );
oraCmd.Transaction = transaction;

oraCmd.ExecuteNonQuery();

------------------------------------------------------------
DataTable dt = ( DataTable )dataGridView1.DataSource;
OracleCommandBuilder bu = new OracleCommandBuilder( da );
da.Update( ds.Tables["UserInfo"] );

以上希望对你有帮助,另外你可以去我的文库中找相关的文档看看,我传过几个ADO.NET 的文档,你看了之后应该就熟悉如何对数据库进行操作了。

如何进行C#连接Access数据库的细节操作

许多学者总会面对于数据库的知识,以下的例子讲述到Access数据库说明,用C#的DataSet类访问数据库的一些操作方法。


操作涉及的主要C#类有:
DataSet:对应数据库表的一个集合,实际上是数据库表在内存中的一个缓存
DataTable:对应数据库表,是数据库表行的集合
DataRow:对应数据库表行
OleDbConnection:建立数据库连接
OleDbDataAdapter:由数据库生成DataSet,并负责DataSet与数据库的同步
OleDbCommandBuilder:生成更新数据库所需的指令www.kmxxfk.com

DataSet、DataTable、DataRow用于数据在缓存中的操作,这上面的操作只有更新到数据库中,修改结果才会被永久保存。OleDbConnection 是用OLEDB方法连接数据库所必需的。OleDbDataAdapter和OleDbCommandBuilder用来生成DataSet,完成数据库更新。与OleDbDataAdapter和OleDbCommandBuilder相对应,SqlDataAdapter和SqlCommandBuilder也可以完成用SQL语言为指令的数据库更新。

假设在D:盘创建了Access数据库,其路径为d:\0DBAcs\account.mdb,数据库中有一张名为kai的数据库表。表结构如下:
表名;Kai
字段Field Name类型说明
1开支IDkzID长整型自动编号
2开支人Kzren文本50字符
3开支项目名kzname文本50字符
4日期riqi日期/时间99-99-99;0掩码
5开支说明shuoming文本225字符
6总金额zonge单精度小数点任意;这项开支的总花费
7数量shuliang长整型 www.kmxxfc.com
8单价Danjia单精度小数点任意

表建好之后:(1)对表中添加新数据(2)查询表中的某个字段。为了实现这两项功能,以下几个问题要考虑:
1准备工作
声明必须的公共变量
建立与数据库的连接,创建DataSet对象
2添加记录
在DataSet对象上添加记录
同步DataSet对象对象与数据库中的数据,这一点很重要,很多人忘记了数据进行同步,结果往往是添加、修改的数据不能保存到数据库中。
3查询数据库表中某记录的某字段;

我们可以将上述功能用一个类DataOper实现,下面是程序设计的主要活动。
声明要用的C#系统类
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;

声明DataOper类中的公共变量
private string DBlocation;
private OleDbConnection dbconn; //数据库连接
private OleDbDataAdapter da;

建立与数据库的连接,这里采用了OLEDB方法:
dbconn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0; Data Source=d:\0DBAcs\account.mdb");
dbconn.Open();

创建DataSet对象
da = new OleDbDataAdapter(@"select * from kai", dbconn); //引用数据库连接dbconn并依据SQL语句"select * from kai"创建OleDbDataAdapter对象da
DataSet ds = new DataSet(); //创建DataSet对象
da.Fill(ds); //用OleDbDataAdapter对象da填充、更新刚创建的DataSet对象

添加记录并更新数据库
OleDbCommandBuilder cb = new OleDbCommandBuilder(da); // 创建OleDbCommandBuilder对象cb用于更新OleDbDataAdapter对象da的Insert、Delete、Update指令
da.UpdateCommand = cb.GetUpdateCommand(); //更新OleDbDataAdapter对象da的指令
设计人员可以编写自己的更新指令,也可以象上面所写的那样用系统默认的指令。但不管怎样,上面的语句不能缺少,否则程序在运行中会抛出异常System.InvalidOperationException,并提示:Update requires a valid InsertCommand when passed DataRow collection with new rows.


DataRow drx = ds.Tables[0].NewRow(); //创建一条新记录行

drx["kzren"] = "kzren";
drx["kzname"]="kzname";
drx["riqi"]=2008-10-11;
drx["shuoming"]="shuoming";
drx["zonge"] = 12;
drx["shuliang"] = 3;
drx["danjia"] = 4;
ds.Tables[0].Rows.Add(drx); //在表中追加记录
da.Update(ds); //更新数据库

要查询引用某记录的某字段,直接按如下的方法引用就可以了。
String kx=ds.Tables[0].Rows[0]["kzren"].ToString()



连接access
首先看一个例子代码片断:
程序代码:www.lzfsk.com/
--------------------------------------------------------------------------------
using system.data;
using system.data.oledb;
......
string strconnection="provider=microsoft.jet.oledb.4.0;";
strconnection+=@"data source=c:\begas.Net\northwind.mdb";
oledbconnection objconnection=new oledbconnection(strconnection);
......
objconnection.open();
objconnection.close();
......
--------------------------------------------------------------------------------
解释:
连接access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!
strconnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源.
"provider=microsoft.jet.oledb.4.0;"是指数据提供者,这里使用的是microsoft jet引擎,也就是access中的数据引擎,ASP.net就是靠这个和access的数据库连接的.
"data source=c:\begaspnet\northwind.mdb"是指明数据源的位置,他的标准形式是"data source=mydrive:mypath\myfile.mdb".
ps:
1."+="后面的"@"符号是防止将后面字符串中的"\"解析为转义字符.
2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:
strconnection+="data source=";
strconnection+=mappath("northwind.mdb");
这样就可以省得你写一大堆东西了!
3.要注意连接字符串中的参数之间要用分号来分隔.
"oledbconnection objconnection=new oledbconnection(strconnection);"这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道.
"objconnection.open();"这用来打开连接.至此,与access数据库的连接完成.其余操作(插入,删除...)请参阅相关书籍
连接SQL Server
例子代码片断:
程序代码:

--------------------------------------------------------------------------------
using system.data;
using system.data.sqlclient;
...
string strconnection="user id=sa;passWord=;";
strconnection+="initial catalog=northwind;server=yoursqlserver;";
strconnection+="connect timeout=30";
sqlconnection objconnection=new sqlconnection(strconnection);
...
objconnection.open();
objconnection.close();
...
--------------------------------------------------------------------------------
解释:
连接sql server数据库的机制与连接access的机制没有什么太大的区别,只是改变了connection对象和连接字符串中的不同参数.
首先,连接sql server使用的命名空间不是"system.data.oledb",而是"system.data.sqlclient".
其次就是他的连接字符串了,我们一个一个参数来介绍(注意:参数间用分号分隔):
"user id=sa":连接数据库的验证用户名为sa.他还有一个别名"uid",所以这句我们还可以写成"uid=sa".
"password=":连接数据库的验证密码为空.他的别名为"pwd",所以我们可以写为"pwd=".
这里注意,你的sql server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的sql server设置为Windows登录,那么在这里就不需要使用"user id"和"password"这样的方式来登录,而需要使用"trusted_connection=sspi"来进行登录.
"initial catalog=northwind":使用的数据源为"northwind"这个数据库.他的别名为"database",本句可以写成"database=northwind".
"server=yoursqlserver":使用名为"yoursqlserver"的服务器.他的别名为"data source","address","addr".如果使用的是本地数据库且定义了实例名,则可以写为"server=(local)\实例名";如果是远程服务器,则将"(local)"替换为远程服务器的名称或ip地址.
"connect timeout=30":连接超时时间为30秒.
在这里,建立连接对象用的构造函数为:sqlconnection.
其余的就和access没有什么区别了!
********************************************************************************************************************
用c#访问access数据库


我编写这个程序的动机是当我希望用c sharp访问msaccess数据库的时候我没有办法获得任何信息和参考材料.网上所能获得的所有材料都是偏重于sql的,所以我们将分两步来编写这个应用程序,第一我们将展示如何连接到msaccess数据库然后看看它有多复杂.最后,我们就这样完成了这个程序. 

闲言少序,让我们开始正题.连接到数据库的过程与我们早先的ado连接过程相比已经发生了较大的变化.下面的图表恰当的(我希望如此)oledbconnection--> oledbcommand --> oledbdatareader.现在那些熟悉ado的人很明显能看出两者的相似之处但是为了使那些还没有很好的适应ado的人能够明白,下面是一些解释. 

oledbconnection -->代表对数据库的单一连接,根据底层数据库的功能它能给你操纵数据库的能力.有一点必须记住,虽然oledbconnection对象出了作用范围,它也不会自动被关闭.所以,你将不得不显示的调用这个对象的close()方法. 

oledbcommand -->这是就象我们在ado中使用的一样的通常的command对象.你可以通过这个对象调用sql存储过程或是sql查询语句. 

oledbdatareader -->这个类拥有非常大的重要性因为它提供了实际上的对数据库底层数据集的访问.当你调用oledbcommand的executereader方法的时候它就会被创建,.net beta2 sdk说不要直接创建这个类的对象. 

现在你可以在.net beta 2的文档中看到更多的关于这些主要对象的说明,下面是指出如何在程序中访问数据库的源代码. 

using system; 
using system.data.oledb; 

class oledbtest{ 

public static void main() 

/创建数据库连接 
oledbconnection aconnection = new oledbconnection("provider=microsoft.jet.oledb.4.0;data source=c:\\db1.mdb"); 

/创建command对象并保存sql查询语句 
oledbcommand acommand = new oledbcommand("select * from emp_test", aconnection); 
try 

aconnection.open(); 

/创建datareader 对象来连接到表单 
oledbdatareader areader = acommand.executereader(); 
console.writeline("this is the returned data from emp_test table"); 

/循环遍历数据库 
while(areader.read()) 

console.writeline(areader.getint32(0).tostring()); 


/关闭reader对象 
areader.close(); 

/关闭连接,这很重要 
aconnection.close(); 


/一些通常的异常处理 
catch(oledbexception e) 

console.writeline("error: {0}", e.errors[0].message); 




成功运行这个程序的步骤 
1.用msaccess创建一个名叫db1.mdb的数据库 
2.创建一个名叫emp_test的表单 
3.使它包含下列数据域 
emp_code int 
emp_name text 
emp_ext text 
4.将上面的代码保存到sample.cs文件中 
5.确保数据库位于c:\并确保mdac2.6或是更新的版本已经被安装 
6.编译运行 

现在让我们来了解一些我们在oledbconnection对象的构造函数看到的东西的一些细节,在这里你看见诸如"provider="之类的东西.下面是一些和ado.net兼容的驱动程序类型. 
sqlolddb --> microsoft ole db provider for sql server, 
msra --> microsoft ole db provider for Oracle, 
microsoft.jet.oledb.4.0 --> ole db provider for microsoft jet 
你可以选择其中的任何一个但是他们会需要传递不同的参数,例如jet.oledb.需要传递mdb文件的名字而sqloledb需要传递用户名和密码. 

所有这些驱动程序都位于system.data.oledb命名空间里,所以你必须包括它,而且它们和oledb provider for odbc不兼容,也就是说你不能在VB6.0程序里使用这些驱动程序来访问数据库,所以不要去寻找解释为什么要把这些数据库放在c:\上的资料了 

当你使用microsoft sql server 7.0 或者更新版本的时候,下面是微软给出的一些指导: 
推荐使用.net data provider在下列情况中,使用microsoft sql server 7.0 或者更新版本的中间层应用程序,使用microsoft data engine (msde)或icrosoft sql server 7.0 或者更新版本的单层应用程序. 
建议将ole db provider for sql server (sqloledb)和ole db .net data provider一起使用. 
对于microsoft sql server 6.5和更早的版本,你必须同时使用ole db provider for sql server 和 ole db.net data provider. 
推荐使用microsoft sql server 6.5和更早的版本或是oracle的中间层应用程序使用ole db .net data provider. 
对于microsoft sql server 7.0 或者更新版本,推荐sql server .net data provider. 
推荐单层应用程序使用microsoft access数据库. 
不推荐一个中间层程序同时使用ole db .net data provider和microsoft access数据库. 
不再支持ole db provider for odbc (msdasql)                    

如何进行C#连接Access数据库的细节操作

许多学者总会面对于数据库的知识,以下的例子讲述到Access数据库说明,用C#的DataSet类访问数据库的一些操作方法。


操作涉及的主要C#类有:
DataSet:对应数据库表的一个集合,实际上是数据库表在内存中的一个缓存
DataTable:对应数据库表,是数据库表行的集合
DataRow:对应数据库表行
OleDbConnection:建立数据库连接
OleDbDataAdapter:由数据库生成DataSet,并负责DataSet与数据库的同步
OleDbCommandBuilder:生成更新数据库所需的指令www.kmxxfk.com

DataSet、DataTable、DataRow用于数据在缓存中的操作,这上面的操作只有更新到数据库中,修改结果才会被永久保存。OleDbConnection 是用OLEDB方法连接数据库所必需的。OleDbDataAdapter和OleDbCommandBuilder用来生成DataSet,完成数据库更新。与OleDbDataAdapter和OleDbCommandBuilder相对应,SqlDataAdapter和SqlCommandBuilder也可以完成用SQL语言为指令的数据库更新。

假设在D:盘创建了Access数据库,其路径为d:\0DBAcs\account.mdb,数据库中有一张名为kai的数据库表。表结构如下:
表名;Kai
字段Field Name类型说明
1开支IDkzID长整型自动编号
2开支人Kzren文本50字符
3开支项目名kzname文本50字符
4日期riqi日期/时间99-99-99;0掩码
5开支说明shuoming文本225字符
6总金额zonge单精度小数点任意;这项开支的总花费
7数量shuliang长整型 www.kmxxfc.com
8单价Danjia单精度小数点任意

表建好之后:(1)对表中添加新数据(2)查询表中的某个字段。为了实现这两项功能,以下几个问题要考虑:
1准备工作
声明必须的公共变量
建立与数据库的连接,创建DataSet对象
2添加记录
在DataSet对象上添加记录
同步DataSet对象对象与数据库中的数据,这一点很重要,很多人忘记了数据进行同步,结果往往是添加、修改的数据不能保存到数据库中。
3查询数据库表中某记录的某字段;

我们可以将上述功能用一个类DataOper实现,下面是程序设计的主要活动。
声明要用的C#系统类
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;

声明DataOper类中的公共变量
private string DBlocation;
private OleDbConnection dbconn; //数据库连接
private OleDbDataAdapter da;

建立与数据库的连接,这里采用了OLEDB方法:
dbconn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0; Data Source=d:\0DBAcs\account.mdb");
dbconn.Open();

创建DataSet对象
da = new OleDbDataAdapter(@"select * from kai", dbconn); //引用数据库连接dbconn并依据SQL语句"select * from kai"创建OleDbDataAdapter对象da
DataSet ds = new DataSet(); //创建DataSet对象
da.Fill(ds); //用OleDbDataAdapter对象da填充、更新刚创建的DataSet对象

添加记录并更新数据库
OleDbCommandBuilder cb = new OleDbCommandBuilder(da); // 创建OleDbCommandBuilder对象cb用于更新OleDbDataAdapter对象da的Insert、Delete、Update指令
da.UpdateCommand = cb.GetUpdateCommand(); //更新OleDbDataAdapter对象da的指令
设计人员可以编写自己的更新指令,也可以象上面所写的那样用系统默认的指令。但不管怎样,上面的语句不能缺少,否则程序在运行中会抛出异常System.InvalidOperationException,并提示:Update requires a valid InsertCommand when passed DataRow collection with new rows.


DataRow drx = ds.Tables[0].NewRow(); //创建一条新记录行

drx["kzren"] = "kzren";
drx["kzname"]="kzname";
drx["riqi"]=2008-10-11;
drx["shuoming"]="shuoming";
drx["zonge"] = 12;
drx["shuliang"] = 3;
drx["danjia"] = 4;
ds.Tables[0].Rows.Add(drx); //在表中追加记录
da.Update(ds); //更新数据库

要查询引用某记录的某字段,直接按如下的方法引用就可以了。
String kx=ds.Tables[0].Rows[0]["kzren"].ToString()



连接access
首先看一个例子代码片断:
程序代码:www.lzfsk.com/
--------------------------------------------------------------------------------
using system.data;
using system.data.oledb;
......
string strconnection="provider=microsoft.jet.oledb.4.0;";
strconnection+=@"data source=c:\begas.Net\northwind.mdb";
oledbconnection objconnection=new oledbconnection(strconnection);
......
objconnection.open();
objconnection.close();
......
--------------------------------------------------------------------------------
解释:
连接access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!
strconnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源.
"provider=microsoft.jet.oledb.4.0;"是指数据提供者,这里使用的是microsoft jet引擎,也就是access中的数据引擎,ASP.net就是靠这个和access的数据库连接的.
"data source=c:\begaspnet\northwind.mdb"是指明数据源的位置,他的标准形式是"data source=mydrive:mypath\myfile.mdb".
ps:
1."+="后面的"@"符号是防止将后面字符串中的"\"解析为转义字符.
2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:
strconnection+="data source=";
strconnection+=mappath("northwind.mdb");
这样就可以省得你写一大堆东西了!
3.要注意连接字符串中的参数之间要用分号来分隔.
"oledbconnection objconnection=new oledbconnection(strconnection);"这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道.
"objconnection.open();"这用来打开连接.至此,与access数据库的连接完成.其余操作(插入,删除...)请参阅相关书籍
连接SQL Server
例子代码片断:
程序代码:

--------------------------------------------------------------------------------
using system.data;
using system.data.sqlclient;
...
string strconnection="user id=sa;passWord=;";
strconnection+="initial catalog=northwind;server=yoursqlserver;";
strconnection+="connect timeout=30";
sqlconnection objconnection=new sqlconnection(strconnection);
...
objconnection.open();
objconnection.close();
...
--------------------------------------------------------------------------------
解释:
连接sql server数据库的机制与连接access的机制没有什么太大的区别,只是改变了connection对象和连接字符串中的不同参数.
首先,连接sql server使用的命名空间不是"system.data.oledb",而是"system.data.sqlclient".
其次就是他的连接字符串了,我们一个一个参数来介绍(注意:参数间用分号分隔):
"user id=sa":连接数据库的验证用户名为sa.他还有一个别名"uid",所以这句我们还可以写成"uid=sa".
"password=":连接数据库的验证密码为空.他的别名为"pwd",所以我们可以写为"pwd=".
这里注意,你的sql server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的sql server设置为Windows登录,那么在这里就不需要使用"user id"和"password"这样的方式来登录,而需要使用"trusted_connection=sspi"来进行登录.
"initial catalog=northwind":使用的数据源为"northwind"这个数据库.他的别名为"database",本句可以写成"database=northwind".
"server=yoursqlserver":使用名为"yoursqlserver"的服务器.他的别名为"data source","address","addr".如果使用的是本地数据库且定义了实例名,则可以写为"server=(local)\实例名";如果是远程服务器,则将"(local)"替换为远程服务器的名称或ip地址.
"connect timeout=30":连接超时时间为30秒.
在这里,建立连接对象用的构造函数为:sqlconnection.
其余的就和access没有什么区别了!
********************************************************************************************************************
用c#访问access数据库


我编写这个程序的动机是当我希望用c sharp访问msaccess数据库的时候我没有办法获得任何信息和参考材料.网上所能获得的所有材料都是偏重于sql的,所以我们将分两步来编写这个应用程序,第一我们将展示如何连接到msaccess数据库然后看看它有多复杂.最后,我们就这样完成了这个程序. 

闲言少序,让我们开始正题.连接到数据库的过程与我们早先的ado连接过程相比已经发生了较大的变化.下面的图表恰当的(我希望如此)oledbconnection--> oledbcommand --> oledbdatareader.现在那些熟悉ado的人很明显能看出两者的相似之处但是为了使那些还没有很好的适应ado的人能够明白,下面是一些解释. 

oledbconnection -->代表对数据库的单一连接,根据底层数据库的功能它能给你操纵数据库的能力.有一点必须记住,虽然oledbconnection对象出了作用范围,它也不会自动被关闭.所以,你将不得不显示的调用这个对象的close()方法. 

oledbcommand -->这是就象我们在ado中使用的一样的通常的command对象.你可以通过这个对象调用sql存储过程或是sql查询语句. 

oledbdatareader -->这个类拥有非常大的重要性因为它提供了实际上的对数据库底层数据集的访问.当你调用oledbcommand的executereader方法的时候它就会被创建,.net beta2 sdk说不要直接创建这个类的对象. 

现在你可以在.net beta 2的文档中看到更多的关于这些主要对象的说明,下面是指出如何在程序中访问数据库的源代码. 

using system; 
using system.data.oledb; 

class oledbtest{ 

public static void main() 

/创建数据库连接 
oledbconnection aconnection = new oledbconnection("provider=microsoft.jet.oledb.4.0;data source=c:\\db1.mdb"); 

/创建command对象并保存sql查询语句 
oledbcommand acommand = new oledbcommand("select * from emp_test", aconnection); 
try 

aconnection.open(); 

/创建datareader 对象来连接到表单 
oledbdatareader areader = acommand.executereader(); 
console.writeline("this is the returned data from emp_test table"); 

/循环遍历数据库 
while(areader.read()) 

console.writeline(areader.getint32(0).tostring()); 


/关闭reader对象 
areader.close(); 

/关闭连接,这很重要 
aconnection.close(); 


/一些通常的异常处理 
catch(oledbexception e) 

console.writeline("error: {0}", e.errors[0].message); 




成功运行这个程序的步骤 
1.用msaccess创建一个名叫db1.mdb的数据库 
2.创建一个名叫emp_test的表单 
3.使它包含下列数据域 
emp_code int 
emp_name text 
emp_ext text 
4.将上面的代码保存到sample.cs文件中 
5.确保数据库位于c:\并确保mdac2.6或是更新的版本已经被安装 
6.编译运行 

现在让我们来了解一些我们在oledbconnection对象的构造函数看到的东西的一些细节,在这里你看见诸如"provider="之类的东西.下面是一些和ado.net兼容的驱动程序类型. 
sqlolddb --> microsoft ole db provider for sql server, 
msra --> microsoft ole db provider for Oracle, 
microsoft.jet.oledb.4.0 --> ole db provider for microsoft jet 
你可以选择其中的任何一个但是他们会需要传递不同的参数,例如jet.oledb.需要传递mdb文件的名字而sqloledb需要传递用户名和密码. 

所有这些驱动程序都位于system.data.oledb命名空间里,所以你必须包括它,而且它们和oledb provider for odbc不兼容,也就是说你不能在VB6.0程序里使用这些驱动程序来访问数据库,所以不要去寻找解释为什么要把这些数据库放在c:\上的资料了 

当你使用microsoft sql server 7.0 或者更新版本的时候,下面是微软给出的一些指导: 
推荐使用.net data provider在下列情况中,使用microsoft sql server 7.0 或者更新版本的中间层应用程序,使用microsoft data engine (msde)或icrosoft sql server 7.0 或者更新版本的单层应用程序. 
建议将ole db provider for sql server (sqloledb)和ole db .net data provider一起使用. 
对于microsoft sql server 6.5和更早的版本,你必须同时使用ole db provider for sql server 和 ole db.net data provider. 
推荐使用microsoft sql server 6.5和更早的版本或是oracle的中间层应用程序使用ole db .net data provider. 
对于microsoft sql server 7.0 或者更新版本,推荐sql server .net data provider. 
推荐单层应用程序使用microsoft access数据库. 
不推荐一个中间层程序同时使用ole db .net data provider和microsoft access数据库. 
不再支持ole db provider for odbc (msdasql)                    

C#连接各类数据库的方法集合

  本文列出了C#连接Access SQL Server Oracle MySQL DB 和SyBase六种不同数据库的程序源码和需要注意的点 C#连接Access

  程序代码

  using System Data;

  using System Data OleDb;

  string strConnection= Provider=Microsoft Jet OleDb ; ;

  strConnection+=@ DataSource=C:BegASPNETNorthwind mdb ;

  OleDbConnection objConnection=new OleDbConnection(strConnection);    objConnection Open();    objConnection Close();

  解释

  连接Access数据库需要导入额外的命名空间 所以有了最前面的两条using命令 这是必不可少的!

  strConnection这个变量里存放的是连接数据库所需要的连接字符串 他指定了要使用的数据提供者和要使用的数据源

   Provider=Microsoft Jet OleDb ; 是指数据提供者 这里使用的是Microsoft Jet引擎 也就是Access中的数据引擎 就是靠这个和Access的数据库连接的     Data Source=C:BegASPNETNorthwind mdb 是指明数据源的位置 他的标准形式是 Data Source=MyDrive:MyPathMyFile MDB

  PS

   += 后面的 @ 符号是防止将后面字符串中的 解析为转义字符

   如果要连接的数据库文件和当前文件在同一个目录下 还可以使用如下的方法连接

  strConnection+= Data Source= ;strConnection+=MapPath( Northwind mdb );

   要注意连接字符串中的参数之间要用分号来分隔

   OleDbConnection objConnection=new OleDbConnection(strConnection); 这一句是利用定义好的连接字符串来建立了一个链接对象 以后对数据库的操作我们都要和这个对象打交道

   objConnection Open(); 这用来打开连接 至此 与Access数据库的连接完成

   C#连接SQL Server     程序代码

  using System Data;

  using System Data SqlClient;

  string strConnection= user id=sa;password=; ;

  strConnection+= initial catalog=Northwind;Server=YourSQLServer; ;

  strConnection+= Connect Timeout= ;    SqlConnection objConnection=new SqlConnection(strConnection);

  objConnection Open();

  objConnection Close();

  解释

  连接SQL Server数据库的机制与连接Access的机制没有什么太大的区别 只是改变了Connection对象和连接字符串中的不同参数

  首先 连接SQL Server使用的命名空间不是 System Data OleDb 而是 System Data SqlClient

  其次就是他的连接字符串了 我们一个一个参数来介绍(注意 参数间用分号分隔)

   user id=sa 连接数据库的验证用户名为sa 他还有一个别名 uid 所以这句我们还可以写成 uid=sa  

   password= 连接数据库的验证密码为空 他的别名为 pwd 所以我们可以写为 pwd=

  这里注意 你的SQL Server必须已经设置了需要用户名和密码来登录 否则不能用这样的方式来登录 如果你的SQL Server设置为Windows登录 那么在这里就不需要使用 user id 和 password 这样的方式来登录 而需要使用 Trusted_Connection=SSPI 来进行登录

   initial catalog=Northwind 使用的数据源为 Northwind 这个数据库 他的别名为 Database 本句可以写成 Database=Northwind

   Server=YourSQLServer 使用名为 YourSQLServer 的服务器 他的别名为 Data Source Address Addr 如果使用的是本地数据库且定义了实例名 则可以写为 Server=(local)实例名 ;如果是远程服务器 则将 (local) 替换为远程服务器的名称或IP地址     Connect Timeout= 连接超时时间为 秒

  在这里 建立连接对象用的构造函数为 SqlConnection

   C#连接Oracle     程序代码

  using System Data OracleClient;using System Data;//在窗体上添加一个按钮 叫Button 双击Button 输入以下代码private void Button _Click(object sender System EventArgs e){string ConnectionString= Data Source=sky;user=system;password=manager; ;//写连接串OracleConnection conn=new OracleConnection(ConnectionString);//创建一个新连接try{conn Open();OracleCommand cmd=conn CreateCommand();cmd CommandText= select * from MyTable ;//在这儿写sql语句OracleDataReader odr=cmd ExecuteReader();//创建一个OracleDateReader对象while(odr Read())//读取数据 如果odr Read()返回为false的话 就说明到记录集的尾部了 {Response Write(odr GetOracleString( ) ToString());//输出字段 这个数是字段索引 具体怎么使用字段名还有待研究}odr Close();}catch(Exception ee){Response Write(ee Message); //如果有错误 输出错误信息}finally{conn Close(); //关闭连接}}

   C#连接MySQL

  程序代码

  using MySQLDriverCS; // 建立数据库连接MySQLConnection DBConn;DBConn = new MySQLConnection(new MySQLConnectionString( localhost mysql root ) AsString);DBConn Open(); // 执行查询语句MySQLCommand DBComm;DBComm = new MySQLCommand( select Host User from user DBConn); // 读取数据MySQLDataReader DBReader = DBComm ExecuteReaderEx(); // 显示数据try{while (DBReader Read()){Console WriteLine( Host = { } and User = { } DBReader GetString( ) DBReader GetString( ));}}finally{DBReader Close();DBConn Close();} //关闭数据库连接DBConn Close();

   C#连接IBM DB

  程序代码

  OleDbConnection Open();//打开数据库连接OleDbDataAdapter Fill(dataSet Address );//将得来的数据填入dataSetDataGrid DataBind();//绑定数据OleDbConnection Close();//关闭连接 //增加数据库数据在Web Form上新增对应字段数量个数的TextBox 及一个button 为该按键增加Click响应事件代码如下 this OleDbInsertCommand CommandText = INSERTsintosADDRESS(NAME EMAIL AGE ADDRESS) VALUES( +TextBox Text+ +TextBox Text+ +TextBox Text+ +TextBox Text+ ) ;OleDbInsertCommand Connection Open();//打开连接OleDbInsertCommand ExecuteNonQuery();//执行该SQL语句OleDbInsertCommand Connection Close();//关闭连接

   C#连接SyBase

  程序代码

lishixin/Article/program/net/201311/13346

C#连接各类数据库的方法集合

  本文列出了C#连接Access SQL Server Oracle MySQL DB 和SyBase六种不同数据库的程序源码和需要注意的点 C#连接Access

  程序代码

  using System Data;

  using System Data OleDb;

  string strConnection= Provider=Microsoft Jet OleDb ; ;

  strConnection+=@ DataSource=C:BegASPNETNorthwind mdb ;

  OleDbConnection objConnection=new OleDbConnection(strConnection);    objConnection Open();    objConnection Close();

  解释

  连接Access数据库需要导入额外的命名空间 所以有了最前面的两条using命令 这是必不可少的!

  strConnection这个变量里存放的是连接数据库所需要的连接字符串 他指定了要使用的数据提供者和要使用的数据源

   Provider=Microsoft Jet OleDb ; 是指数据提供者 这里使用的是Microsoft Jet引擎 也就是Access中的数据引擎 就是靠这个和Access的数据库连接的     Data Source=C:BegASPNETNorthwind mdb 是指明数据源的位置 他的标准形式是 Data Source=MyDrive:MyPathMyFile MDB

  PS

   += 后面的 @ 符号是防止将后面字符串中的 解析为转义字符

   如果要连接的数据库文件和当前文件在同一个目录下 还可以使用如下的方法连接

  strConnection+= Data Source= ;strConnection+=MapPath( Northwind mdb );

   要注意连接字符串中的参数之间要用分号来分隔

   OleDbConnection objConnection=new OleDbConnection(strConnection); 这一句是利用定义好的连接字符串来建立了一个链接对象 以后对数据库的操作我们都要和这个对象打交道

   objConnection Open(); 这用来打开连接 至此 与Access数据库的连接完成

   C#连接SQL Server     程序代码

  using System Data;

  using System Data SqlClient;

  string strConnection= user id=sa;password=; ;

  strConnection+= initial catalog=Northwind;Server=YourSQLServer; ;

  strConnection+= Connect Timeout= ;    SqlConnection objConnection=new SqlConnection(strConnection);

  objConnection Open();

  objConnection Close();

  解释

  连接SQL Server数据库的机制与连接Access的机制没有什么太大的区别 只是改变了Connection对象和连接字符串中的不同参数

  首先 连接SQL Server使用的命名空间不是 System Data OleDb 而是 System Data SqlClient

  其次就是他的连接字符串了 我们一个一个参数来介绍(注意 参数间用分号分隔)

   user id=sa 连接数据库的验证用户名为sa 他还有一个别名 uid 所以这句我们还可以写成 uid=sa  

   password= 连接数据库的验证密码为空 他的别名为 pwd 所以我们可以写为 pwd=

  这里注意 你的SQL Server必须已经设置了需要用户名和密码来登录 否则不能用这样的方式来登录 如果你的SQL Server设置为Windows登录 那么在这里就不需要使用 user id 和 password 这样的方式来登录 而需要使用 Trusted_Connection=SSPI 来进行登录

   initial catalog=Northwind 使用的数据源为 Northwind 这个数据库 他的别名为 Database 本句可以写成 Database=Northwind

   Server=YourSQLServer 使用名为 YourSQLServer 的服务器 他的别名为 Data Source Address Addr 如果使用的是本地数据库且定义了实例名 则可以写为 Server=(local)实例名 ;如果是远程服务器 则将 (local) 替换为远程服务器的名称或IP地址     Connect Timeout= 连接超时时间为 秒

  在这里 建立连接对象用的构造函数为 SqlConnection

   C#连接Oracle     程序代码

  using System Data OracleClient;using System Data;//在窗体上添加一个按钮 叫Button 双击Button 输入以下代码private void Button _Click(object sender System EventArgs e){string ConnectionString= Data Source=sky;user=system;password=manager; ;//写连接串OracleConnection conn=new OracleConnection(ConnectionString);//创建一个新连接try{conn Open();OracleCommand cmd=conn CreateCommand();cmd CommandText= select * from MyTable ;//在这儿写sql语句OracleDataReader odr=cmd ExecuteReader();//创建一个OracleDateReader对象while(odr Read())//读取数据 如果odr Read()返回为false的话 就说明到记录集的尾部了 {Response Write(odr GetOracleString( ) ToString());//输出字段 这个数是字段索引 具体怎么使用字段名还有待研究}odr Close();}catch(Exception ee){Response Write(ee Message); //如果有错误 输出错误信息}finally{conn Close(); //关闭连接}}

   C#连接MySQL

  程序代码

  using MySQLDriverCS; // 建立数据库连接MySQLConnection DBConn;DBConn = new MySQLConnection(new MySQLConnectionString( localhost mysql root ) AsString);DBConn Open(); // 执行查询语句MySQLCommand DBComm;DBComm = new MySQLCommand( select Host User from user DBConn); // 读取数据MySQLDataReader DBReader = DBComm ExecuteReaderEx(); // 显示数据try{while (DBReader Read()){Console WriteLine( Host = { } and User = { } DBReader GetString( ) DBReader GetString( ));}}finally{DBReader Close();DBConn Close();} //关闭数据库连接DBConn Close();

   C#连接IBM DB

  程序代码

  OleDbConnection Open();//打开数据库连接OleDbDataAdapter Fill(dataSet Address );//将得来的数据填入dataSetDataGrid DataBind();//绑定数据OleDbConnection Close();//关闭连接 //增加数据库数据在Web Form上新增对应字段数量个数的TextBox 及一个button 为该按键增加Click响应事件代码如下 this OleDbInsertCommand CommandText = INSERTsintosADDRESS(NAME EMAIL AGE ADDRESS) VALUES( +TextBox Text+ +TextBox Text+ +TextBox Text+ +TextBox Text+ ) ;OleDbInsertCommand Connection Open();//打开连接OleDbInsertCommand ExecuteNonQuery();//执行该SQL语句OleDbInsertCommand Connection Close();//关闭连接

   C#连接SyBase

  程序代码

lishixin/Article/program/net/201311/13346

请问c#如何调用数据库中的数据(具体的代码实现)以及sql中要做如何设置 谢谢!

sql中只要建立表即可,无需进行其他设置

    在web.config中设置数据库连接字符串

<appSettings>

<add key="SqlConn" value="Server=服务器IP;DataBase=数据库名;UID=用户名;PWD=密码;"/>

</appSettings>

2.在登录页面登录按钮代码中加入语句

 protected void LogButton_Click(object sender, EventArgs e)

        {

            string userid = this.Userid.Text.Trim();//用户名

string pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(this.Pwd.Text.Trim(), "MD5");//密码

            string ConStr = ConfigurationManager.AppSettings["SqlConn"].ToString();

            SqlConnection sqlconn = new SqlConnection(ConStr);

            sqlconn.Open();//建立连接

            string mysql = "select count(*) as iCount from 表名 where UserID = '"+userid+"'";//查询语句

            SqlCommand cmd = new SqlCommand(mysql, sqlconn);

            SqlDataReader sqlreader = cmd.ExecuteReader();

            sqlreader.Read();//查询表数据

            string Count = sqlreader["iCount"].ToString();

            sqlreader.Close();

            sqlconn.Close();

            if (Count != "0")

            {

                sqlconn.Open();

                string mysql1 = "select * from 表名 where UserID = '" + userid + "'";

                SqlCommand cmd1 = new SqlCommand(mysql1, sqlconn);

                SqlDataReader sqlreader1 = cmd1.ExecuteReader();

                sqlreader1.Read();

                string DrPwd = sqlreader1["UserPwd"].ToString().Trim();

                string DrUser = sqlreader1["UserName"].ToString().Trim();

                sqlreader1.Close();

                sqlconn.Close();

                if (DrPwd == pwd)

                {

                    Session["logname"] = DrUser;

                    Session["logstate"] = 1;

                    Response.Redirect("main.aspx");     //登录下级界面

                }

                else

                {

                    Response.Write("登录密码错误!");

                    this.Pwd.Focus();

                }

            }

            else

            {

                Response.Write("登录用户错误!");

                this.Userid.Focus();

            } 

            

        }

你可以参考以上登录代码,自行编辑查询语句,实现调用数据库数据的功能.望采纳,谢谢.

C#连接数据库问题 !!50分!

要使用MySQLDriverCS或odbc.net + mysql 驱动才可以.

OleDbConnection conn = new OleDbConnection("Provider=MySQLProv;Data Source=mydb;User Id=UserName;Password=asdasd;" );

还有using是用oledb,其他和SQL Server一样。

例子:

最好用ySQLDriverCS它比odbc.net 要快.

http://www.microsoft.com/china/community/Column/63.mspx

采用MySQLDriverCS驱动的操作mysql

MySQLConnection conn = null;

string tmp = null;

string connstr = "Data Source=test;Password={2};User ID={1};Location={0};";

connstr=String.Format(connstr,this._ServiceName.Text.Trim(),this._UserId.Text.Trim(),this._Password.Text.Trim());

string query=" drop table if exists dbtable ";

try

{

string time1=System.DateTime.Now.ToString();

conn = new MySQLConnection(connstr);

conn.Open();

MySQLCommand cmd = new MySQLCommand(query, conn);

cmd.ExecuteNonQuery();

query="create table dbtable (id int ,col1 char(20) ,col2 char(20),col3 char(20) ) ";

cmd.CommandText=query;

cmd.ExecuteNonQuery();

query = "insert into test.dbtable values(10, 'disksidkfsdi', 'asdfaf', 'adsfasdf')";

cmd.CommandText=query;

for(int i = 0; i < 1000; i++)

{

cmd.ExecuteNonQuery();

}

//cmd.Dispose();

//conn.Close();

query = "select * from test.dbtable";

//MySQLCommand cmd2 = new MySQLCommand(query, conn);

//conn.Open();

cmd.CommandText=query;

MySQLDataReader reader = cmd.ExecuteReaderEx();

while(reader.Read())

{

tmp = reader[0].ToString();

tmp = reader[1].ToString();

tmp = reader[2].ToString();

tmp = reader[3].ToString();

}

reader.Close();

//conn.Close();

query = "delete from test.dbtable";

cmd.CommandText =query;

//MySQLCommand cmd3 = new MySQLCommand(query, conn);

//conn.Open();

cmd.ExecuteNonQuery();

query=" drop table if exists dbtable ";

cmd.CommandText =query;

cmd.ExecuteNonQuery();

cmd.Dispose();

MessageBox.Show(time1+"---" +System.DateTime.Now.ToString(),"操作完成!");

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

finally

{

conn.Close();

}

采用 ODBC.net 操作mysql

注意不但要装odbc.net 还要装 MySQL ODBC 3.51 驱动.

Microsoft.Data.Odbc.OdbcConnection conn=null;

string tmp = null;

string constr="DRIVER={MySQL ODBC 3.51 Driver};DATABASE=test;SERVER="+

this._ServiceName.Text.Trim()+";UID="+this._UserId.Text.Trim()+

";PASSWORD="+this._Password.Text+

";PORT=3306;OPTION=149515;";

string query=" drop table if exists dbtable ";

try

{

string time1=System.DateTime.Now.ToString();

conn = new OdbcConnection(constr);

conn.Open();

OdbcCommand cmd = new OdbcCommand(query, conn);

cmd.ExecuteNonQuery();

query="create table dbtable (id int ,col1 char(20) ,col2 char(20),col3 char(20) ) ";

cmd.CommandText=query;

cmd.ExecuteNonQuery();

query = "insert into test.dbtable values(10,'disksidkfsdi', 'asdfaf', 'adsfasdf')";

cmd.CommandText=query;

for(int i = 0; i < 1000; i++)

{

cmd.ExecuteNonQuery();

}

//cmd.Dispose();

//conn.Close();

query = "select * from test.dbtable";

//OdbcCommand cmd2 = new OdbcCommand(query, conn);

//conn.Open();

cmd.CommandText=query;

OdbcDataReader reader = cmd.ExecuteReader();

while(reader.Read())

{

tmp = reader[0].ToString();

tmp = reader[1].ToString();

tmp = reader[2].ToString();

tmp = reader[3].ToString();

}

reader.Close();

//conn.Close();

query = "delete from test.dbtable";

cmd.CommandText=query;

//OdbcCommand cmd3 = new OdbcCommand(query, conn);

//conn.Open();

cmd.ExecuteNonQuery();

query=" drop table if exists dbtable ";

cmd.CommandText=query;

cmd.ExecuteNonQuery();

cmd.Dispose();

MessageBox.Show(time1+"---" +System.DateTime.Now.ToString(),"操作完成!");

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

finally

{

conn.Close();

}

//更简单的方法

OdbcConnection thisConnection= new OdbcConnection(

DRIVER={MySQL ODBC 3.51 Driver};"+

"SERVER=localhost;"+

"DATABASE=test;"+

"UID=root;"+

"PASSWORD=;"

thisConnection.open();

//代码

thisConnection.close();

一定要记得关闭连接,否则占用服务器资源,严重是导致服务器崩溃

显示全文