用C#对ADO.NET数据库完成简单操作(2)

读取不同的数据类型 

["stuff"]通常可以返回某个类型的字符串。但是要获取一个整型或 DateTime对象,就需要列出这些数据。以一个简单的例子或是ADODataReade内建的很多例子中的一个就可以说明。例如: 

int nOrdinalAge = dr.GetOrdinal( "Age" ); 

int nAge = dr.GetInt32( 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.GetInt32( nOrdinalAge ); 

System.Console.WriteLine( " Age : " + nAge );  

插入,修改,删除和其他SQL命令 

插入,修改和删除用SQL语句很容易实现。下面的代码通过一个SQL命令插入一条记录: 

// SQL command 

String sSQLCommand = "INSERT INTO Person (Age, FirstName, 

Description, Updated) " + 

"VALUES( 55, 'Bob', 'Is a Penguin', 

'2001/12/25 20:30:15' );"; 

// Create the command object 

ADOCommand cmdAdder = new ADOCommand( 

sSQLCommand, 

DB_CONN_STRING); 

cmdAdder.ActiveConnection.Open(); 

// Execute the SQL command 

int nNoAdded = cmdAdder.ExecuteNonQuery(); 

System.Console.WriteLine( "\nRow(s) Added = " + nNoAdded + "\n" );  

注意:try/catch并未出现在上述例子中,实际上是需要写的。 

插入 

上述代码通过一条SQL语句插入一条记录。这条命令稍后执行。命令格式中需要注意的是: 

◆数值直接赋值,不同单引号('); 

◆字符串必须用单引号括起来 ('blah'); 

◆字符串中不能包含任何单引号或是双引号; 

◆日期和时间都要以国际格式包括在单引号中。('YYYYY/MM/DD HH:MM:SS') 

修改 

UPDATE命令指示了要被修和已做修改的记录。ExecuteNonQuery()返回的值显示变化的纪录的数目,这样如果在表格中有5个Peter那它就会返回5。 

String sSQLCommand = "UPDATE Person SET Age = 27 WHERE FirstName = 'Peter'"; 

删除 

DELETE命令显示要被删除的纪录。这可能会是几条。ExecuteNonQuery()返回的值显示变化的纪录的数目,这样如果表中有2个Bobo就返回2。这两个Bobo都会被删除。 

String sSQLCommand = "DELETE FROM Person WHERE FirstName = 'Bobo'"; 

关于样例程序 

样例是个简单的控制程序,它执行Microsoft Access数据库中提供的所有操作。在Visual Studio.NET IDE将TestDbReadWrite.csproj 作为工程文件打开就可以编译它。在MainConsole.cs中改变DB_CONN_STRIN的值,让其指向SimpleTest.mdb,编译它。 

结论 

现在你可以在C#中执行基础数据库操作了。找时间学学SQL,也要多读些有关它工作原理的文章。如果你感到厌倦了,到www.mctainsh.com上去看一下更新的代码。 

加支付宝好友偷能量挖...


评论(0)网络
阅读(81)喜欢(0)Asp.Net/C#/WCF