在C#中对sql server 2005中的数据库进行简单操作
初学C#,对sql数据库这方面还一无所知,今天在网上折腾了一晚,没找到几个可以看的简单明了的sql数据库基本操作的教程.都折腾一晚了,把学到的一点东西整理了一下,希望对你有用.
对数据库进行操作的三个对象:
|
对象名 |
作用 |
|
SqlConnection |
连接到数据库(数据库连接者) |
|
SqlCommand |
对数据库执行sql语句(SQL执行者) |
|
SqlDataReader |
读取数据表中的数据(数据读取者) |
以上三个对象都存在于命名空间System.Data.SqlClient中.
一、连接数据库
连接数据库的先决条件:
1. 要创建数据库连接对象
格式如下:
SqlConnection 对象名 = new SqlConnection();
2. 要赋予数据库连接对象的sql数据库连接语句
例如: “Data Source=(local);Initial Catalog=school;user id=sa;pwd=”
Data Source为服务器实例名
Initial Catalog为数据库名
user id为数据库用户名
pwd为数据库密码
下面是完整的创建数据库连接的语句
SqlConnection conn = new SqlConnection(“Data Source=(local);Initial Catalog=school;user id=sa;pwd=”);
二、打开数据库
数据库连接成功以后就要打开数据库,打开数据库我们需要用到刚才创建的数据库连接对象conn的open方法.
如:conn.open();
需要注意的是conn.open();并无返回值,但是我们有必要判断一下是否与数据库连接成功,怎么办呢?在这里我们就需要用一个try…catch语句获得数据库是否连接成功.
三、执行sql语句
要执行sql语句就得有执行者,这个执行者就是SqlCommand.首先,我们要创建一个SqlCommand对象,创建对象的语句格式如下:
SqlCommand 对象名 = new SqlCommand("SQL语句", 数据库连接者);
例如: SqlCommand cmd = new SqlCommand("select * from student",conn);
创建好对象以后就需要它执行相应的SQL语句,这需要用到SqlCommand的几个方法:
|
已重写。 对连接执行 Transact-SQL 语句并返回受影响的行数。 | |
|
已重载。 将 CommandText 发送到 Connection 并生成一个 SqlDataReader。 |
这两个方法都有个共同的属性: CommandText,我们要做的就是将需要执行的语句赋值给它,或者像上面的例子那样,在创建SqlCommand对象的时候就在SqlCommand的构造函数中填入参数.
当语句执行后都会有个返回值返回,此时我们就需要用SqlDataReader对象获得(保存)返回值.
例如:
SqlDataReader rad;
rad = cmd.ExecuteReader();
四、读出数据
当执行了rad = cmd.ExecuteReader();操作后,我们需要查询的数据已经存入rad中(这些数据是SqlCommand对象送入SqlDataReader对象中的),此时我们要用SqlDataReader对象的Read()方法进行读取数据操作(让SqlDataReader对象SqlCommand对象送入的数据中读取出来).
数据读取到内存以后,我们只需要用SqlDataReader对象的下标就能将数据按照列号读出了.
例如:
while (rad.Read())
{
//向文本框中加入表中第一列的所有数据
textBox1.AppendText(rad[0].ToString()+”\n”);
}
SqlDataReader默认的指针是指向数据表的第一条记录之前的,每执行一次Read()方法,指针就会下移一次,形象的说也就是每执行一次Read()方法,程序会自动读取表中的下一条记录,该方法会返回一个bool型得值,当指针位置没有到数据表的最后的时候,这个值一直为true.
总结:
SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=数据库名;user id=用户名;pwd=密码 ");
conn.Open();//连接
SqlCommand cmd = new SqlCommand("update.....", 数据库连接对象);
cmd.ExecuteNonQuery();//更新数据
SqlCommand cmd = new SqlCommand("delete.....", 数据库连接对象);
cmd.ExecuteNonQuery();//删除数据
SqlDataReader rad;
rad = cmd.ExecuteReader();
while (rad.Read())
{
textBox1.AppendText(rad[0].ToString());
}
无所谓
http://www.wdrabbit.cn
2007年10月20日星期六
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/347876/viewspace-310176/ ,如需转载,请注明出处,否则将追究法律责任。