先上代码
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