C# sql连接数据库基本步骤

连接数据库基本步骤 
1.创建连接字符串
//Data  Source=steve-pc;连接本机
//Initial Catalog= 数据库名
//Integrated Security=True//windows验证方式
string constr="Data Source =steve-pc;Initial Catalog=数据库名;User Id=sa; password=123"

2.创建连接对象
using (SqlConnection con=new SqlConnection(constr))
{
//测试 打开连接
con.open()
// con.Close()

}
3.打开连接
4.关闭连接

 向表中插入一条数据 
 
 using(SqlConnection con=new SqlConnection (constr))
 {
  //编写sql语句
  //增加一条
  string sql="insert into TblPerson values ('李凯悦',18,174,0)";
  //创建一个执行sql语句的对像
  using (SqlCommand cmd=new SqlCommand (sql,con))
  {
  //开始执行sql语句
  //打开连接(最晚打开连接,最早关闭连接,节省资源)
  con.open()
  //开始执行语句
  cmd.ExecuteNonQuery();///insert\delete\update语句时,与一个返回值时int类型,表示执行insert,delete,update语句后,所影响的行数,只有执行这三个语句会返回所影响的行数,执行其他永远返回-1
  
  cmd.ExecuteScalar()//当执行返回单个结果 
  cmd.ExecuteReader()//当查询出多行,多列结果的时候 
  
  
  }
 
 }
 
 修改一条语句
 update TblPerson set uName="王国维",age=20,height=176 where autoId=44
 
 
 查询出表中的记录条数
 string sql="select count(*) from TblPerson "
 object count =(int)cmd.ExecuteScalar(); 
 连接字符串 创建连接对象 sql语句 创建命令对象sqlCommand 打开连接 执行
 当sql语句执行的时候,如果是聚合函数那么EXecuteScalar()返回的不可能是null,因为聚合函数不会返回null,但是如果sql语句使用的不是聚合函数。那么ExecuteScalar()方法是有可能返回null的,那么在使用count变量的时候就需要先判断是否为null了
 
 执行完毕后 会从表中查询出一些数据,这些查询出的数据是保存在了数据库服务器的内存当中
 返回给应用程序一个SqlDataReader reader 接下来应用程序要获取数据的话 必须通过reader来获取数据
 using (SqlDataReader reader= cmd.ExecuteReader())
 {
  if(reader.HasRows)
  {
   //reader指向第一条数据的前一条  reader.Read()向后移动一条数据
   where(reader.Read())
   {
   //获取当前reader指向的数据
   //reader.FieldCount,可以获取当前查询语句查询出的列的个数
   for(int i=0;i<reader.FieldCount;i++)
   {
    Console.WriteLine(reader[i]+"     ")
    //getvalue只能根据列的索引来获取列的值 //但是通过reader索引器可以通过列名来获取列的值
    Console.WriteLine(reader.GetValue(i))//reader["列名"]
    //当遇到数据库中的null值的时候,通过reader,GetValue()或者reader[]索引器来获取列的值,拿到的是DBNull,不是c#的null ,而DBNull。Value的ToString()方法返回的时空字符串,所以最终没有报错 
    根据列名称获取列的索引
    
    reader.GetOrdinal()
    
    
   }
   }
  }
  
 else
 {
  Console.WriteLine("没有查询到任何数据")
 }
 
 }
 
 Datareader 特点
 1.只读,只进 只能向前移动
 2.使用Reader时必须保证连接时打开状态 当reader使用完毕 后,必须把reader关闭,释放,同时关闭释放连接对象
 3.默认情况下DataReader要求独占一个连接对象
 
 reader.GetXXXX() //使用强类型读取列中的数据 数据为null时报异常
 reader.IsDBNull()?"Null":reader.GetInt32()//先判断是否为空
 
 
 dataGridView
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值