ADO.NET数据库访问技术(转)

这几天的自学,现在总结一下关于C#中连接数据库的一些知识点:

1.使用Connection连接数据库的步骤:

(1).添加命名空间 System.Data.SqlClient(注意:初学者经常会忘记)

(2)定义连接字符串。连接SQL Server 数据库时:

server=服务器名;database=数据库名;uid=用户名;pwd=密码;例如:要连接本机上的StudentManagement数据库,用户名为sa,密码为111

string connString="server=.;database=StudentManagement;uid=sa;pwd=111;"

(3).创建Connection对象:

SqlConnection connection=new SqlConnection(connSting);

(4).打开数据库:

connection.Open();

(5).对数据库操作完毕后关闭数据库连接

connection.Close();

2.Command对象:

(1).command对象可以用来对数据库发出具体的操作指令,例如对数据库的查询、增加、修改、删除

(2).创建Command对象,并设置它的属性:

SqlCommand command =new SqlCommand();

command.Connection=connection;

command.CommandText=sqlQuery(sqlQuery为查询语句);

(3).Command对象的主要方法:

ExecuteNonQuery:执行后不返回任何行,对于update、insert、delete语句,返回影响的行数对于其他类型的语句,返回值为-1

ExecuteReader:执行查询语句,返回DataReader对象

ExecuteScalar:执行查询,并返回查询结果的第一行第一列,忽略其他列或行

ExecuteXmlreader:将CommandText发送到Connection并生成一个XmlReader

3.DataReader对象:

(1).DataReader对象可以从数据库中一只读、只进的方式查询数据,每次的操作只有一个记录保存在内存中

(2).DataReader对象的主要方法:

Read:读取下一条数据

Close:关闭DataReader对象

(3).使用DataReader提取数据的步骤:

(a).建立与数据库的连接并打开

(b).创建一个Command对象

(c).从Command对象中创建DataReader对象

(d).使用DataReader读取并显示

可以使用一个循环利用Read方法便利数据库中行的信息,如果要获取该行中某列的值,只需要使用"["和"]"运算符就可以了

(e).分别关闭DataReader对象和数据库的连接

实例:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data; namespace xmlTest
{
class Program
{
static void Main(string[] args)
{
try
{
//定义连接字符串
string connString = "server=.;database=gpweb;uid=sa;pwd=123456";
//定义查询语句
string cmdStr = "select * from WebUser where UserName='lcyuhe';"; //保存查询结果
DataSet ds = new DataSet(); //创建Connection对象
SqlConnection connection = new SqlConnection(connString);
//打开数据库
connection.Open(); //command对象可以用来对数据库发出具体的操作指令,例如对数据库的查询、增加、修改、删除
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandText = cmdStr;
//int affects = command.ExecuteNonQuery(); SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(ds); DataTableCollection dtc = ds.Tables;
//遍历查询结果
foreach (DataTable dt in dtc)
{
Console.WriteLine("表:" + dt.TableName);
foreach (DataRow drow in dt.Rows)
{ //遍历列
//foreach (var item in drow.ItemArray)
//{
// Console.WriteLine(item);
//} // 获取或设置存储在由名称指定的列中的数据
Console.WriteLine("username:" + drow["username"]);
}
} //Console.WriteLine("受影响的行数:{0}", affects); //对数据库操作完毕后关闭数据库连接
connection.Close(); }
catch (Exception ex)
{
Console.WriteLine(ex.Message);
throw;
}
Console.WriteLine("====================================================");
Console.ReadKey();
}
}
}

转自:http://www.360doc.com/content/13/0606/09/10504424_290840282.shtml

上一篇:ADO.Net 数据库访问技术


下一篇:C#与数据库访问技术总结(八)之ExecuteNonQuery方法