《C#数据库入门经典笔记》

原创 2005年04月22日 17:22:00

《数据库入门经典笔记》
1。获取数据
   6。1创建COMMAND对象
using System;
using System.Data;
using System.Data.SqlClient;

class SQLServerProvider
{
 static void Main(string[] args)
 {
  string Constr = @"server=localhost;integrated security=true;database=Northwind";  //连接数据库
  SqlConnection sqlConn = new SqlConnection(Constr);
  try
  {
   sqlConn.Open();
   Console.WriteLine(sqlConn.DataSource);
   string sql = "select * from Employees";
   
   SqlCommand sqlComm = new SqlCommand(sql,sqlConn);
   SqlDataReader sqlReader = sqlComm.ExecuteReader();
   Console.WriteLine("This program demonstrates the use of SQL server .net data provider");
   Console.WriteLine("querying database '{0}' with query '{1}'",sqlConn.Database,sqlComm.CommandText);
   Console.WriteLine("First Name /t Last Name /n");
   while(sqlReader.Read())
   {
    Console.WriteLine("{0}|{1}",sqlReader["FirstName"].ToString().PadLeft(10),sqlReader["LastName"].ToString().PadLeft(10));
   }
   sqlReader.Close();

  }
  catch(Exception ex)
  {
   Console.WriteLine("Error:" + ex.Message);
  }
  finally
  {
   sqlConn.Close();
  }
 }
}
   6。2 执行命令
ExecuteNonQuery  不返回任何结果,语句不是查询
ExecuteScalar  单个值
ExecuteReader  一个或者多个
ExecuteXmlReader XML

using System;
using System.Data;
using System.Data.SqlClient;

class SQLServerProvider
{
 static void Main(string[] args)
 {
  string Constr = @"server=localhost;integrated security=true;database=Northwind";
  SqlConnection sqlConn = new SqlConnection(Constr);
  try
  {
   sqlConn.Open();
   string sql = "select FirstName from Employees";
   SqlCommand sqlComm = new SqlCommand(sql,sqlConn);
   Console.WriteLine("Number of Employees is:{0}",sqlComm.ExecuteScalar());
  }
  catch(Exception ex)
  {
   Console.WriteLine("Error:" + ex.Message);
  }
  finally
  {
   sqlConn.Close();
  }
 }
}
ExecuteScalar()返回的是OBJECT类型,

转化成STRING
string sql = "select FirstName from Employees";
SqlCommand sqlComm = new SqlCommand(sql,sqlConn);
string str = (string)sqlComm.ExecuteScalar();
Console.WriteLine("Number of Employees is:{0}",str);

转化成整形
string sql = "select count(*) from Employees";
SqlCommand sqlComm = new SqlCommand(sql,sqlConn);
int str = (int)sqlComm.ExecuteScalar();
Console.WriteLine("Number of Employees is:{0}",str);

6。3 执行具有多个结果的命令

ExecuteReader()
他返回的是SqlDataReader对象

using System;
using System.Data;
using System.Data.SqlClient;

class SQLServerProvider
{
 static void Main(string[] args)
 {
  string Constr = @"server=localhost;integrated security=true;database=Northwind";
  SqlConnection sqlConn = new SqlConnection(Constr);
  try
  {
   sqlConn.Open();
   string sql = "select FirstName,LastName from Employees";
   SqlCommand sqlComm = new SqlCommand(sql,sqlConn);
   SqlDataReader sqlReader = sqlComm.ExecuteReader();
   while(sqlReader.Read())
   {
    Console.WriteLine("Employees name:{0} {1}",sqlReader.GetValue(0),sqlReader.GetValue(1));
   }
   sqlReader.Close();
  }
  catch(Exception ex)
  {
   Console.WriteLine("Error:" + ex.Message);
  }
  finally
  {
   sqlConn.Close();
  }
 }
}


6。4 执行非查询命令


using System;
using System.Data;
using System.Data.SqlClient;

class SQLServerProvider
{
 static void Main(string[] args)
 {
  string Constr = @"server=localhost;integrated security=true;database=Northwind";
  SqlConnection sqlConn = new SqlConnection(Constr);
  
  string sql = "select count(*) from Employees";
  SqlCommand selectCommand = new SqlCommand(sql,sqlConn);
  SqlCommand noQueryCommand = sqlConn.CreateCommand();  
  try
  {
   sqlConn.Open();
   Console.WriteLine("Before insert:Number of Employees {0}",selectCommand.ExecuteScalar());
   noQueryCommand.CommandText = "insert into Employees(FirstName,Lastname) values('Chen','LianJia')";
   Console.WriteLine(selectCommand.CommandText);
   Console.WriteLine("Number of rows affected is:(0)",noQueryCommand.ExecuteNonQuery());
   Console.WriteLine("after insert:Number of Employees {0}",selectCommand.ExecuteScalar());
  }
  catch(Exception ex)
  {
   Console.WriteLine("Error:" + ex.Message);
  }
  finally
  {
   sqlConn.Close();
  }
 }
}


6。5 命令参数

using System;
using System.Data;
using System.Data.SqlClient;

class SQLServerProvider
{
 static void Main(string[] args)
 {
  string Constr = @"server=localhost;integrated security=true;database=Northwind";
  SqlConnection sqlConn = new SqlConnection(Constr);
  
  string sql = "select count(*) from Employees";
  SqlCommand selectCommand = new SqlCommand(sql,sqlConn);
  SqlCommand noQueryCommand = sqlConn.CreateCommand();  
  try
  {
   sqlConn.Open();
   noQueryCommand.CommandText = "create table MyTable(myName varchar(30),myNumber Integer)";
   Console.WriteLine(selectCommand.CommandText);
   noQueryCommand.ExecuteNonQuery();
   noQueryCommand.CommandText = "insert into MyTable values(@myName,@myNumber)";
   noQueryCommand.Parameters.Add("@myName",SqlDbType.VarChar,30);
   noQueryCommand.Parameters.Add("@myNumber",SqlDbType.Int);
   noQueryCommand.Prepare();
   string[] names = {"Enrico","Franco","Gloria","Horace"};
   int i;
   for(i=1;i<=4;i++)
   {
    noQueryCommand.Parameters["@myName"].Value = names[i-1];
    noQueryCommand.Parameters["@myNumber"].Value = i;
    Console.WriteLine(noQueryCommand.CommandText);
    Console.WriteLine("Number of rows affected is {0}",noQueryCommand.ExecuteNonQuery());
   }
  }
  catch(Exception ex)
  {
   Console.WriteLine("Error:" + ex.Message);
  }
  finally
  {
   sqlConn.Close();
  }
 }
}

阅读《C# 2012数据库编程入门经典(第5版)》

快速略读了一遍,从早上到下午,太快了。 刚做完的信息管理系统用过sqlServer和C#的应用,所以看起来比较快,遇到后面的图像存储,linq,实体等都是模糊的看了下。 下面是目录 ...
  • opm161
  • opm161
  • 2016年01月28日 17:34
  • 664

《C#入门经典第五版》Karli Watson&Christian Nagel 清华大学出版社笔记(一)

《C#入门经典第五版》Karli Watson&Christian Nagel 清华大学出版社笔记(一)第一章 C#简介 在编译使用.NET Framework 库的代码时,不是立即创建专用于操作系统...
  • ziacke
  • ziacke
  • 2015年02月17日 17:50
  • 483

C#学习笔记之集合(入门经典 11.)

集合类的大多功能是通过实现System.Collection命名空间之中的接口而获得的。     1.IEnumerable可以迭代集合中的项。     2.ICollection(继承于IEnu...

<C#入门经典>学习笔记2之控制流程

控制流程控制程序流的两种方法:分支和循环;这两种方法都要用到布尔逻辑布尔运算符 布尔运算符也称关系运算符,包括 ==、!= 、< 、 > 、 = 异或操作 异或操作: Var1 = V...

《C#入门经典》学习笔记(集合、比较和转换)

http://xiang-ai-2002.blog.163.com/blog/static/8477933201041824429161/ 集合   C#中的数组...
  • OnafioO
  • OnafioO
  • 2014年10月25日 16:16
  • 1004

C#入门经典---Windows笔记(1)

尝试着看beginning visual C sharp 2010的英文版,看不懂就看中文的翻译~~~继续好好学习,天天向上!!! ---------------------------------...

读书笔记之《C#入门经典》基础篇

总结一些在学习《C#入门经典》一书中的技巧细节以及基础知识点,由于本人是一个objective-c程序员,所以会偶尔碰到C#与objectiv-c比较类似的概念会提醒一下,下面是基础篇:1.主动进行垃...

C#入门经典-前6章读书笔记

Console.ReadLine() Console.WriteLine() foreach显式转换与隐式转换checked/uncheckedConvert.ToDouble(val)枚举enum ...

C#1-14学习笔记(入门经典5)

1、  bool和string没有隐式转换,但数值类型有一些隐式转换。 2、  参数可变 3、ref(外部初始化)  out(内部初始化) 4、delegate doubleProcessD...

《C#入门经典》第六版 学习笔记之第九章 定义类

第八章是从概念层讲述了OOP技术,第九章之后则是具体的将第八章内容精讲。如果第八章不好理解,可以带着疑问去看后面的章节。在后面的章节看完后再回头重温第八章。 第九章 定义类 9.1 c#中类的定义 ...
  • lzh3312
  • lzh3312
  • 2014年01月25日 19:44
  • 622
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《C#数据库入门经典笔记》
举报原因:
原因补充:

(最多只允许输入30个字)