本文简单的介绍的通过C#对数据库的读写操作。
请先参考一下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string connectonString = "Data Source=(local);Initial Catalog=test; Integrated Security=SSPI;";
string commandString = "insert into test.dbo.student values ('100002','wei song',22,'3','Liu','test from sql')";
string commansString_Parameter = "insert into test.dbo.student values (@id,@name,22,'3','Liu','test from sql')";
string commansString_Parameter_ext = "insert into test.dbo.student values (@id_ext,@name_ext,22,'3','Liu','test from sql')";
SqlConnection sqlConnection = new SqlConnection(connectonString);
sqlConnection.Open();
Console.WriteLine(sqlConnection.ServerVersion);
Console.WriteLine(sqlConnection.State);
// write the sql command , use sqlcommand to insert data to the datebase.
SqlCommand command = new SqlCommand();
command.Connection = sqlConnection;
command.CommandText = commandString;
command.ExecuteNonQuery();
Console.WriteLine(sqlConnection.State);
// add parameters to the sql command
Console.WriteLine("please input user id & user name");
string id = Console.ReadLine();
string name = Console.ReadLine();
command.CommandText = commansString_Parameter;
SqlParameter sqlParameter_id = new SqlParameter("@id",id);
SqlParameter sqlParameter_name = new SqlParameter("@name",name);
command.Parameters.Add(sqlParameter_id);
command.Parameters.Add(sqlParameter_name);
command.ExecuteNonQuery();
// another way to add sql parameters
Console.WriteLine("please input user id & user name");
id = Console.ReadLine();
name = Console.ReadLine();
command.CommandText = commansString_Parameter_ext;
SqlParameter sqlParameter_id_ext = new SqlParameter("@id_ext",SqlDbType.NChar,10);
SqlParameter sqlParameter_name_ext = new SqlParameter("@name_ext",SqlDbType.NChar,50);
sqlParameter_id_ext.Value = id;
sqlParameter_name_ext.Value = name;
command.Parameters.Add(sqlParameter_id_ext);
command.Parameters.Add(sqlParameter_name_ext);
command.ExecuteNonQuery();
// read data from database
string readDataFormDatabase_string = "select * from test.dbo.student";
SqlCommand readDataCommand = new SqlCommand();
readDataCommand.CommandText = readDataFormDatabase_string;
readDataCommand.Connection = sqlConnection;
SqlDataReader sqlDataReader = readDataCommand.ExecuteReader();
Console.WriteLine("//////////////////////////////////////////////////////////////////////////////");
Console.WriteLine("id name age class mentor infor ");
while(sqlDataReader.Read())
{
string user_id = sqlDataReader.GetString(0);
string user_name = sqlDataReader.GetString(1);
int user_age = sqlDataReader.GetInt32(2);
string user_class = sqlDataReader.GetString(3);
string user_mentor = sqlDataReader.GetString(4);
string user_info = sqlDataReader.GetString(5);
// there will be filled by blank after the name, for the name is 50 length in the database. need to process the user_name
Console.WriteLine(user_id+user_name+user_age+user_class+user_mentor+user_info);
}
sqlConnection.Close();
}
}
}
string commansString_Parameter = "insert into test.dbo.student values (@id,@name,22,'3','Liu','test from sql')";
这里是定义个用于通过参数进行数据库插入的语句,我们程序中经常需要给数据库中插入特定的参数信息。
添加参数:
SqlParameter sqlParameter_id = new SqlParameter("@id",id);
将这个参数添加到SqlCommand中:
command.Parameters.Add(sqlParameter_id);
详细说明
在连接数据库对数据库进行操作之前,需要建立一个对数据库的连接:
SqlConnection sqlConnection = new SqlConnection(connectonString);
connectionString是一个已经定义好的字符串,存储着关于数据库连接的相关信息。
string connectonString = "Data Source=(local);Initial Catalog=test; Integrated Security=SSPI;";
Data Source=(local) 指定我们要连接的数据库的位置,此例为连接本地数据库。
Initial Catalog=test 指定要连接数据库服务器中的哪个数据库,在本例中建立了一个名为test的数据库。
Integrated Security=SSPI 指定了数据库的访问方式,本例是通过SSPI指定为通过windows进行身份验证。
同事,数据库连接字符串中还可以有多个其他的参数可选,如下:
详情请查看MSDN. 当然,很多情况下我们需要访问其他电脑上的数据库,这样就需要
User ID
Password
等属性。
定义好数据库连接后,通过Open()函数打开对数据库的访问:
sqlConnection.Open();
对数据库进行操作的时候需要用SqlCommand类,并指定这个SqlCommand对象所对应的数据库连接和SQL语句:
command.Connection = sqlConnection;
command.CommandText = commandString;
如果是给数据库中插入数据, 则执行:
command.ExecuteNonQuery();
通常情况下,我们要把用户输入的数据添加到数据库中,这个时候比较方便的操作就是通过SqlParameter给Sql语句中添加参数,这样就不用在自己合成查询字符串了。如下所示:
Console.WriteLine("please input user id & user name");
string id = Console.ReadLine();
string name = Console.ReadLine();
command.CommandText = commansString_Parameter;
SqlParameter sqlParameter_id = new SqlParameter("@id",id);
SqlParameter sqlParameter_name = new SqlParameter("@name",name);
command.Parameters.Add(sqlParameter_id);
command.Parameters.Add(sqlParameter_name);
command.ExecuteNonQuery();
读取数据库的数据的时候,我们通过SqlDataReader来获取数据库的信息
SqlDataReader sqlDataReader = readDataCommand.ExecuteReader();
这里的SqlDataReader对象获取的是查询返回的所有信息,通过Read()方法读取每一行的返回信息:
while(sqlDataReader.Read())
{
string user_id = sqlDataReader.GetString(0);
string user_name = sqlDataReader.GetString(1);
int user_age = sqlDataReader.GetInt32(2);
string user_class = sqlDataReader.GetString(3);
string user_mentor = sqlDataReader.GetString(4);
string user_info = sqlDataReader.GetString(5);
// there will be filled by blank after the name, for the name is 50 length in the database. need to process the user_name
Console.WriteLine(user_id+user_name+user_age+user_class+user_mentor+user_info);
}
获取不同的列的信息,通过GetXXX()来获取,括号中的数字表示获取的是第几列的数据。
本文提供了一段C#代码示例,演示如何进行数据库的读写操作。首先,通过定义数据库连接字符串连接到本地数据库test,使用Integrated Security=SSPI进行身份验证。接着,创建SqlCommand对象,设置SQL语句,利用SqlParameter添加参数,实现数据插入。同时,介绍了通过SqlDataReader读取数据库数据的方法,使用Read()遍历并获取各列信息。
1035

被折叠的 条评论
为什么被折叠?



