知识大全 C#对数据库的读取,写,更新和删除
Posted 知
篇首语:宁可枝头抱香死,何曾吹落北风中。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#对数据库的读取,写,更新和删除相关的知识,希望对你有一定的参考价值。
C#对数据库的读取,写,更新和删除 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
● 读取数据 其中包括多种数据类型 整型 字符串 日期型
● 写数据 如读数据一样 我们也需要写入多种类型的数据 这可以通过SQL语句来完成
● 更新或修改数据 我们将再次用到SQL语句
● 删除数据 用SQL实现
上述的操作都要基于Microsoft Access 数据库 但是 我们要对连接字符串进行简单的修改才能使用SQL或其他ADO数据
开始操作
在使用ADO类之前 我们将把ADO Net的命名空间和一些常用数据类包括进来 把下面的代码加入到你想进行数据库操作的地方 它的具体位置应该是命名空间行之后 类声明之前
using System Data; // State variables using System Data ADO; // Database using System Globalization; // Date
你或许还要向System Data命名空间添加参数 这取决于工程的类型需要 你所添加的代码的编译信息会提醒你这一点 添加System Data命名空间的操作
● 右键点击Solution explorer 参数选项
● 选择添加参数
● 选择 Net框架栏
● 双击System data dll条目
● 选择OK
● System data应该出现在Solution explorer的参数列表中了
由于在多数操作中都会使用连接字符串 所以我建议你将它包含在使用的类中
注意 程序中数据库文件的路径可能和下面不一样
//Attributes public const string DB_CONN_STRING = \\ Driver=Microsoft Access Driver (* mdb); \\ + \\ DBQ=D:\\\\\\\\CS\\\\\\\\TestDbReadWrite\\\\\\\\SimpleTest mdb\\ ;
读取数据
现在的操作就比较有趣了 读是通过ADODataReader类完成的(参看Chris Maunder的文章\\ The ADO Net ADODataReader CLASS\\ 以了解更多) 读的操作步骤如下
● 用ADO连接打开数据库 [Page] ADOConnection conn = new ADOConnection(DB_CONN_STRING); conn Open();
● 创建一个SQL语句来确认要获取的数据 这条命令执行后返回一个ADODataReader对象 注意Execute方法中的OUT关键字 这是C#中传递参数的方式
ADODataReader dr; ADOCommand cmd = new ADOCommand( \\ SELECT * FROM Person\\ conn ); cmd Execute( out dr);
● 循环遍历ADODataReader中的每条记录 直到完成 注意 数据被作为字符串直接返回 字段名显示了要读取的字段
while( dr Read() ) System Console WriteLine( dr[\\ FirstName\\ ] );
● 清除
但是 作为优秀的程序员我们应该将代码放在try/catch/finally 中 确保我们能够控制所有意外
try the database operations catch( Exception ex ) System Console WriteLine( \\ READING:\\ ); System Console WriteLine( \\ ERROR:\\ + ex Message ); System Console WriteLine( \\ SQL :\\ + sSqlCmd ); System Console WriteLine( \\ Conn :\\ + DB_CONN_STRING ); finally // Close the connection if( conn State == DBObjectState Open ) conn Close(); 读取不同的数据类型[\\ stuff\\ ]通常可以返回某个类型的字符串 但是要获取一个整型或 DateTime对象 就需要列出这些数据 以一个简单的例子或是ADODataReade内建的很多例子中的一个就可以说明 例如
int nOrdinalAge = dr GetOrdinal( \\ Age\\ ); [Page] int nAge = dr GetInt ( nOrdinalAge ); DateTime tUpdated = (DateTime)dr[\\ Updated\\ ];
注意通过名字定位GetOrdinal字段的用法 如果字段是空的(没有填入值) 上面的代码会引发一个异常 这种情况下我们用IsNull方法检验数据是否存在
int nOrdinalAge = dr GetOrdinal( \\ Age\\ ); if( dr IsNull( nOrdinalAge ) ) System Console WriteLine( \\ Age : Not given!\\ ); else int nAge = dr GetInt ( nOrdinalAge ); System Console WriteLine( \\ Age : \\ + nAge );
插入 修改 删除和其他SQL命令
插入 修改 和删除用SQL语句很容易实现 下面的代码通过一个SQL命令插入一条记录
// SQL mand String sSQLCommand = \\ INSERT INTO Person (Age FirstName Description Updated) \\ + \\ VALUES( Bob Is a Penguin / / : : );\\ ; // Create the mand object ADOCommand cmdAdder = new ADOCommand( sSQLCommand DB_CONN_STRING); cmdAdder ActiveConnection Open(); // Execute the SQL mand int nNoAdded = cmdAdder ExecuteNonQuery(); System Console WriteLine( \\ \\\\nRow(s) Added = \\ + nNoAdded + \\ \\\\n\\ );
注意 try/catch并未出现在上述例子中 实际上是需要写的
插入
上述代码通过一条SQL语句插入一条记录 这条命令稍后执行 命令格式中需要注意的是 [Page] ● 数值直接赋值 不同单引号( );
● 字符串必须用单引号括起来 ( blah )
● 字符串中不能包含任何单引号或是双引号
● 日期和时间都要以国际格式包括在单引号中 ( YYYYY/MM/DD HH:MM:SS )
修改
UPDATE命令指示了要被修和已做修改的记录 ExecuteNonQuery()返回的值显示变化的纪录的数目 这样如果在表格中有 个Peter那它就会返回
String sSQLCommand = \\ UPDATE Person SET Age = WHERE FirstName = Peter \\ ;
删除
DELETE命令显示要被删除的纪录 这可能会是几条 ExecuteNonQuery()返回的值显示变化的纪录的数目 这样如果表中有 个Bobo就返回 这两个Bobo都会被删除
String sSQLCommand = \\ DELETE FROM Person WHERE FirstName = Bobo \\ ;
关于样例程序
样例是个简单的控制程序 它执行Microsoft Access数据库中提供的所有操作 在Visual Studio Net IDE将TestDbReadWrite csproj 作为工程文件打开就可以编译它 在MainConsole cs中改变DB_CONN_STRIN的值 让其指向SimpleTest mdb 编译它
结论
cha138/Article/program/net/201311/11656相关参考
cha138/Article/program/net/201311/14358
c#通过网线读取三菱PLC数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! publicsta
C#高级编程:数据读取器[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  
C#高级编程:数据读取器[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  
在下面的映射表中加入gb和gbk就不会有乱码了源码在下面提供一位网友写的程序改了改 privatestaticvoidLoadCharsetMap() mapping=ne
C#来创建和读取XML文档 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 扩展标记语言XML(e
C#如何读取和创建INI文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在做项目过程中有时需
摘要在这个Tip中你将学到如何创建一个自定义控制器基类让它能够为常见的数据库操作暴露一系列acton如显示插入更新和删除数据 无论什么时候你在写代码时都会发现其实你在一遍又一遍地编写着同样类型的
Cookies赋值、读取、删除设置过期时间 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 设置过
jQuery读取写入删除cookie具体实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在jqu