C#中使用ADO.NET操作数据库

C#访问数据库是通过ADO.NET实现的,其中ADO.NET是应用程序和数据库之间连接的驱动程序。
ADO.NET的使用分为两部分实现,第一部分是应用程序与数据库之间的连接。
当然在使用之前要引用相应的命名空间。

using System.Data.SqlClient;
//数据库连接字符串
//server服务器IP地址,我这里是连接的本机127.0.0.1
//uid是用户名,pwd是密码,database是数据库名称
string strConn = "server = 127.0.0.1;uid = sa;pwd = `1234qwert;database = SP900Optimal";
//创建连接对象
SqlConnection conn = new SqlConnection(strConn);
//打开数据库
conn.Open();

关于数据库连接字符串一共有三种方式实现,上面的一种是比较常见的,格式还可以写成下面的样子。

//连接字符串的另一种写法
string strConn = "Data Source = 127.0.0.1;User ID = sa;Password = `1234qwert;Initial Catalog = SP900Optimal";

当然在学习过程中以上两种方式都可以用,但是并不符合实际工程的应用,因为在用户的角度来看,连接字符串随时可能更改,所以我们通常将连接字符串写在App.config配置文件中。其中connectionString设置为连接字符串。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="connstr" connectionString="server = 127.0.0.1;uid = sa;pwd = `1234qwert;database = SP900Optimal"/>
  </connectionStrings>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
</configuration>

下面是如何从配置文件中获取连接字符串:

using System.Configuration;
//推荐使用APP.config来存储连接字符串,方便用户修改
 string strConn = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;

第二部分是sql命令的执行,sql命令又分为两种,非查询类命令和查询类命令。
非查询类命令实现如下:

//创建Sql命令对象
SqlCommand cmd = new SqlCommand();
//给命令对象指定连接对象
cmd.Connection = conn;

//sql命令字符串
string strCmd = "update druglist set drawer_name = '2U8' where id = 1";

//sql脚本
cmd.CommandText = strCmd;

//执行非查询命令
cmd.ExecuteNonQuery();

查询类命令由于要接收返回的数据,所有与非查询类命令有不同。

//sql命令字符串
strCmd = "select * from cabinet";

//sql脚本
cmd.CommandText = strCmd;

//执行查询类SQL命令,返回SqlDataReader类型的结果
SqlDataReader sdr = cmd.ExecuteReader();

//遍历结果
while(sdr.Read())
{
    for (int i = 0; i < sdr.FieldCount; i++)
    {
        listView1.Items.Add(sdr[i].ToString());
    }
}

最后是完整的代码:

//数据库连接字符串
//server服务器IP地址,我这里是连接的本机127.0.0.1
//uid是用户名,pwd是密码,database是数据库名称
//string strConn = "server = 127.0.0.1;uid = sa;pwd = `1234qwert;database = SP900Optimal";

//连接字符串的另一种写法
//string strConn = "Data Source = 127.0.0.1;User ID = sa;Password = `1234qwert;Initial Catalog = SP900Optimal";

//Windows身份验证登录
//string strConn = "server = 127.0.0.1;Integrated Security = True;database = SP900Optimal";

//推荐使用APP.config来存储连接字符串,方便用户修改
string strConn = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;

//创建连接对象
using (SqlConnection conn = new SqlConnection(strConn))
{
    //创建Sql命令对象
    using (SqlCommand cmd = new SqlCommand())
    {
        //打开数据库
        conn.Open();

        //给命令对象指定连接对象
        cmd.Connection = conn;

        //sql命令字符串
        string strCmd = "update druglist set drawer_name = '2U8' where id = 1";

        //sql脚本
        cmd.CommandText = strCmd;

        //执行非查询命令
        cmd.ExecuteNonQuery();

        //sql命令字符串
        strCmd = "select * from cabinet";

        //sql脚本
        cmd.CommandText = strCmd;

        //执行查询类SQL命令,返回SqlDataReader类型的结果
        SqlDataReader sdr = cmd.ExecuteReader();

        //遍历结果
        while(sdr.Read())
        {
            for (int i = 0; i < sdr.FieldCount; i++)
            {
                listView1.Items.Add(sdr[i].ToString());
            }
        }
        //关闭数据库连接
        conn.Close();

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值