C#操作数据库

先上代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;

namespace WDL
{

   class Program
   {
      static void Main(string[] args)
      {
      //定义连接字符串
      string connString;
      connString = "server=10.1.66.172;uid=PEAdmin;pwd=hRcm6/gQ;database=DB_PE_Test;";
      //定义连接对象sConn
      SqlConnection sConn = new SqlConnection(connString);
      try
      {
        //打开连接
        sConn.Open();
      }
      catch (Exception ex)
      {
        //给出错误信息
        Console.WriteLine("连接错误:" + ex.Message);
      }
      //定义SQL查询语句
      string sql;
      sql = "SELECT TOP 10 [Id],[RuleId],[AllocateToUserId],[Status] from [DB_PE_Test].[dbo].[RuleCouponDetails]";
      //定义命令对象sCmd
      SqlCommand sCmd = new SqlCommand(sql, sConn);
      //定义数据读取器sdr
      SqlDataReader sdr = null;
      //执行命令对象sCmd并赋值给sdr
      sdr = sCmd.ExecuteReader();
      //循环输出sdr中的内容
      Console.WriteLine("进来");
      while (sdr.Read())
      {
        Console.WriteLine("id:{0},[RuleId]{1},AllocateToUserId{2},SN{3}", sdr[0], sdr[1], sdr[2], sdr[3]);
      }
      sdr.Close();
      //Console.ReadKey();
      string Tupdate = "update[DB_PE_Test].[dbo].[RuleCouponDetails] set OrderIdInStore = 'DominosMark-20170908'";
      SqlCommand sUpdate = new SqlCommand(Tupdate, sConn);
      int effectedRows = sUpdate.ExecuteNonQuery();
       Console.WriteLine("更新 end");
      string select2 = "SELECT TOP 10 [Id],[RuleId],[AllocateToUserId],OrderIdInStore,[Status] from [DB_PE_Test].[dbo].[RuleCouponDetails] where OrderIdInStore = 'DominosMark-20170908'";
      //定义命令对象sCmd
      SqlCommand sCmdselect2 = new SqlCommand(select2, sConn);
      //定义数据读取器sdr
      SqlDataReader sdrselect2 = null;
      //执行命令对象sCmd并赋值给sdr
      sdrselect2 = sCmdselect2.ExecuteReader();
      Console.WriteLine("再次读取");
      while (sdrselect2.Read())
      {
        Console.WriteLine("id:{0},[RuleId]{1},AllocateToUserId{2},SN{3}", sdrselect2[0], sdrselect2[1], sdrselect2[2], sdrselect2[3]);
      }

      Console.ReadKey();

      //while (ss.Read())
      //{
      //  Console.WriteLine("id:{0},[RuleId]{1},AllocateToUserId{2},SN{3}", ss[0], ss[1], ss[2], ss[3]);
      //  Console.ReadKey();
      //}
      //关闭数据读取器
      sdrselect2.Close();
      //关闭数据库连接
      sConn.Close();
    }
   }
}

代码解释:
在C#中要操作数据库,一般情况需要引入两个命名空间,在三种连接模式中都要引入下面的命名空间:
System.Data;
而另外一个命名空间,使用不同的连接模式而不同,如果使用SqlClient模式的话,则需要引入如下命名空间:
System.Data.SqlClient;
如果使用OleDb模式的话,需要使用下面的命名空间:
System.Data.OleDb;
如果使用Odbc模式的话,需要使用下面的命名空间:
System.Data.Odbc;

命令对象常用的有三个方法:ExecuteReader(), ExecuteNonQuery()和ExecuteScalar()。ExecuteReader方法用于返回查询结果的全部数据。 ExecuteNonQuery方法用于返回所影响的行数,一般用于Insert、Update和Delete操作。ExecuteScalar方法返回 结果中的第一行第一列的值。
参考链接:http://www.cnblogs.com/myyan/p/3746410.html
http://blog.csdn.net/zhanghaoliangdehao/article/details/7372550

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#操作数据库主要有以下几种方式: 1. ADO.NET:是一种面向关系型数据库的数据访问技术,可以通过.NET Framework提供的API来与数据库进行交互。 2. Entity Framework:是一种ORM(Object-Relational Mapping)框架,可以将对象映射到数据库中的表,通过对对象进行操作来完成对数据库操作。 3. LINQ to SQL:是一种将SQL语句转化为LINQ查询的技术,通过对对象集合进行操作来完成对数据库操作。 下面以ADO.NET为例,介绍一下在C#中如何操作数据库: 1. 连接数据库 ``` using System.Data.SqlClient; //... string connStr = "Data Source=xxx;Initial Catalog=xxx;User ID=xxx;Password=xxx"; //连接字符串 SqlConnection conn = new SqlConnection(connStr); //创建SqlConnection对象 conn.Open(); //打开连接 ``` 2. 执行SQL语句 ``` string sql = "SELECT * FROM xxx WHERE xxx"; //SQL语句 SqlCommand cmd = new SqlCommand(sql, conn); //创建SqlCommand对象 SqlDataReader reader = cmd.ExecuteReader(); //执行查询,并返回SqlDataReader对象 while (reader.Read()) { //遍历查询结果 } reader.Close(); //关闭SqlDataReader对象 ``` 3. 插入、更新、删除数据 ``` string sql = "INSERT INTO xxx (xxx) VALUES (xxx)"; //插入数据的SQL语句 SqlCommand cmd = new SqlCommand(sql, conn); //创建SqlCommand对象 int rows = cmd.ExecuteNonQuery(); //执行插入操作,并返回受影响的行数 ``` 4. 关闭连接 ``` conn.Close(); //关闭连接 ``` 以上是C#中使用ADO.NET操作数据库的基本方法,根据实际情况可以进行相应的修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值