当前位置:编程学习 > C#/ASP.NET >>

C# 使用LINQ访问数据库

C#的LINQ方式访问数据库无疑是非常方便的,下面给出了使用LINQ方式访问MSSQL的基本方法。

 

 

首先声明命名空间using System.Data.SqlClient;

 

再使用SqlConnection类连接,SqlCommand类执行SQL命令,结果返回给SqlDataReader类或其它类。

 

 

 

各类的基本用法介绍:

 

SqlConnection类

 

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

 

用Open()连接数据库,用Close()关闭连接。

 

 

 

SqlCommand类

 

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

 

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

 

执行SQL命令并得到受影响的行数    int ExecuteNonQuery()

 

 

 

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()

 

 

 

 

 

对于每个关联的SqlConnection,一次只能打开一个SqlDataReader,在第一个关闭之前,打开另一个的任何尝试都将失败。类似地,在使用SqlDataReader 时,关联的SqlConnection 正忙于为它提供服务,直到调用Close()时为止。

 

 

 

下面一些示例代码:

 

<pre class="csharp" name="code"><span style="font-size:16px;">//连接数据库 

string SQLCONNECT = @"server=PC-200907281720\SQLEXPRESS;database=master;uid=morewindows;pwd=12345"; 

SqlConnection conn = new SqlConnection(SQLCONNECT); 

conn.Open(); 

 

//连接数据库之后就可以执行SQL命令了 

//使用SqlCommand类的ExecuteReader()返回执行的结果 

string SQLCOMMAND = "select CName, names, C4.LastLogin from C4, S4 where C4.LastLogin = S4.LastLogin order by CName, names"; 

SqlCommand sqlcmd = new SqlCommand(SQLCOMMAND, conn); 

SqlDataReader sr = sqlcmd.ExecuteReader(); 

 

Console.WriteLine("列数:" + sr.FieldCount);    

          

Console.WriteLine("列类型分别为:");  

int nSqlCol = sr.FieldCount; 

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

Console.Write(sr.GetFieldType(i) + " "); 

Console.WriteLine(); 

 

while (sr.Read()) 

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

Console.Write(sr[i].ToString() + " "); 

Console.WriteLine(); 

sr.Close(); 

 

//通过SqlCommand 类的ExecuteNonQuery()来返回受影响的行数。 

string SQLCOMMAND2 = "update dbo.Messages set MessageNum='15' where MessageID='2'"; 

SqlCommand sqlcmd2 = new SqlCommand(SQLCOMMAND2, conn);//也可以用sqlcmd. ConnectionString = SQLCOMMAND2 代替 

int nResult = sqlcmd2.ExecuteNonQuery(); 

Console.WriteLine("受影响行数:" + nResult); 

 

conn.Close();</span> 

 

 

转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/6858216

补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,