这是我的第一篇帖子,所以准备了很久。这是一篇关于.net连接数据库的文章,希望能对我以及喜爱编程开发的人有所帮助。在这里我只是对自己在学习开发中的感受和认知的知识点和大家一同分享,还有欠缺之处,还请各位大哥,高手指点。哪怕是错别字。本人不胜感激!希望我们一同前进!!
在web开发中,不管我们用的是什么语言,数据库连接与操作总是一个重点也是一个难点,希望大家能从中受益!
数据库连接中分为三大类:Sqlconnection,Sqlcommand,SqldataReader下面我们分别来学习这三个类。
Sqlconnection类:
建立与数据库的连接。
常用属性有:
ConnectionString:提供了与数据库连接的信息,包括服务器名,数据库名,用户名,用户密码,具体实现:@"server=./soft;database=mydb;uid=sa;pwd=sa"
常用方法:
Open();打开数据库
Close();关闭数据库
注意:由于我们是web开发中,所以服务器资源尤为宝贵,所以我们在使用连接是打开连接,用完了,一定记得立即关闭连接。
下边我们看一个详细的数据库连接示例:
static void Main(string [] args)
{
Sqlconnection con=new Sqlconnection(@"server=.soft;database=mydb;uid=sa;pwd=sa");
con.Open();
con.Close();
}
此代码运行时,如果不报异常,集表示连接成功。
SqlCommand类:
执行sql语句,操作数据库(CRUD)。
常用属性:
Connection(Sqlconnection):指定该命令对象访问数据库的连接通道
CommandText(string):该命令要执行的语句(sql语句,存储过程名(StoredProcedure))
CommandType(枚举):指定该命令要执行的是sql语句还是存储过程
Parameters(SqlParameterCollection):执行Sql语句或存储过程的参数集合
方法有:
AddWithValue(string key,string value);key指sql语句中的参数,value指key的值。
Add(object);添加一个对象
Remove(object);移除一个对象
RemoveAt(int index);移除指定索引的对象
Clear();清空集合
Count:获取集合值的个数
常用方法:
ExcuteReader():执行sql语句,返回SqlDataReader对象。执行select
ExcuteNonQuery():执行sql语句,返回影响行数。执行insert,updata,delect等
下面是一个简单的示例代码:
public static void Main(string[] args)
{
SqlConnection _conn=new SqlConnection ("server=PC-20090815GQHU;database=mydb;uid=sa;pwd=1115");
SqlCommand _cmd = _conn.CreateCommand();
_cmd.CommandText = "insert into Login values('a','a','a',12)";//已经插入
_conn.Open();
_cmd.ExecuteNonQuery();
_conn.Close();
}
SqlDataReader类:
读取器对象,用于读取在Parameters数据集里的数据,它有一下特点:只读,只向前,速度快,占资源少。
由于SqlDataReader类是final类,所以不能直接new出来,SqlDataReader dr=new SqlDataReader();这中方法是错误的,正确的写法是通过Sqlconnection类的 ExecuteReader方法创建。具 体实现:SqlDataReader dr=con.ExecuteReader();这也是唯一的那一种创建SqlDataReader类的方法。
常用语法:
遍历数据集:dr.Read():读取本行数据,并且将指针移动到下一行,当指针移动到最后一行时,返回false
实现:while(dr.Read()){}
取指定列的值:dr[列名](推荐)
dr[int index]
常用属性:
HasRows:判断读取器中能否读出数据
FieldsCount:数据集的列数
下面是一个示例代码:
public static void Main(string[] args)
{
List<List<string>> li = new List<List<string>>();
Console.WriteLine("请您输入金额");
string account = Console.ReadLine();
SqlConnection _conn = new SqlConnection("server=PC-20090815GQHU;database=mydb;uid=sa;pwd=1115");//创建数据//库据连接
SqlCommand _cmd = _conn.CreateCommand();
_cmd.CommandText = "select * from Login where Account=@account";
_cmd.Parameters.AddWithValue("@account",account );//设定sql语句中的@account值
_conn.Open();
SqlDataReader dr= _cmd.ExecuteReader();//执行操作,并创建读取器
while (dr.Read ())
{
//使用集合添加内容
List<string> ls = new List<string>();
Console.WriteLine(dr["UserName"].ToString ()+dr["Name"].ToString() +dr["Password"].ToString ()+dr["Account"].ToString ());//注意dr后的参数是列值
//将读取器中的内容添加到 list 集合中
ls.Add(dr["UserName"].ToString());
ls.Add(dr["Name"].ToString());
ls.Add(dr["Password"].ToString());
ls.Add(dr["Account"].ToString());
li.Add(ls);
}
Console.WriteLine("集合中;");
//遍历集合
foreach (List<string > s in li)
{
Console.WriteLine(s[0].ToString() + s[1].ToString() + s[2].ToString() +s[3].ToString());
}
_conn .Close ();//注意将连接关闭
}
数据库连接
最新推荐文章于 2024-10-06 21:49:48 发布