最近在学习C#,实习公司要用,黑天白夜的学;加油吧,
笔记内容视频来自黑马视频;;b站
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
//1.创建链接字符串
//Data Source=链接地址
//Initial Catalog=连接的数据库
//Integrated Security=True 默认没有,密码
//string connStr= "Data Source=192.168.1.49;Initial Catalog=FruitShop;User Id=sa;Password=enjoyor;";
string connStr = "Data Source=.;Initial Catalog=Fruitshop;Integrated Security=True;";
#region 向表中插入一条数据
//using (SqlConnection conn = new SqlConnection(connStr))
//{
// string sql= "insert into Fruit(fruit_name,fruit_aliasname,fruit_purchaseprice,fruit_retailprice) values ('槟榔', '柠檬',30.00, 40.00)";
// using(SqlCommand cmd=new SqlCommand(sql, conn))
// {
// //1.最早打开链接,最晚关闭链接(节省资源)
// conn.Open();
// Console.WriteLine("数据库连接成功");
// //2.执行sql语句
// int r= cmd.ExecuteNonQuery();//insert\delete\update语句经常使用 ---有一个返回值int类型,表示执行语句后所影响的行数;
// //注意:只有执行insert\delete\update语句的时候会返回所影响的行数,其他只返回-1
// /* cmd.ExecuteScalar();//当执行返回单个结果的时候(一行一列)
//返回的是object类型
// cmd.ExecuteReader();//当查询多行多列时候*/
// }
//}
//Console.ReadKey();
#endregion
#region 删除表中的数据
//using (SqlConnection conn=new SqlConnection(connStr))
//{
// string sql = "delete from Fruit where fruit_id=12";
// //创建执行sql语句执行对象
// using (SqlCommand cmd = new SqlCommand(sql, conn))
// {
// conn.Open();
// int r = cmd.ExecuteNonQuery();
// if (r > 0)
// {
// Console.WriteLine("删除成功{0}",r);
// }
// }
//}
#endregion
#region 修改表中的数据
//using(SqlConnection conn=new SqlConnection(connStr))
//{
// conn.Open();
// string sql = "UPDATE Fruit set Fruit_name='战斗天使' where fruit_id=5";
// using(SqlCommand com=new SqlCommand(sql, conn))
// {
// int r= com.ExecuteNonQuery();
// if (r > 0)
// {
// Console.WriteLine("删除了{0}", r);
// }
// }
//}
#endregion
#region 查询数据库
using (SqlConnection conn = new SqlConnection(connStr))
{
//string str = "select count(*) from Fruit";
string str = "select * from Fruit";
using (SqlCommand com = new SqlCommand(str, conn))
{
conn.Open();
//当sql语句执行时,如果是聚合函数executescalar不可能是null,
//因为聚合函数不会返回null,如若不然可能返回是null,那就必须先要判断是否为null;
//object r = (int)com.ExecuteScalar();
//SqlDataReader reader = com.ExecuteReader();
//Convert.ToInt32(ExecuteScalar());
//整数,字符串不会异常(int)就会
//Console.WriteLine(r);
//1.数据库接收到sql语句后,开始执行sql语句
//2.执行完毕sql后,会从表中查询出一些数据。
//注意:这些查询出的数据是保存在了”数据服务器“的内存当中,
//并没有返回给应用程序,只是返回给应用程序一个reader对象,这个对象
//就是用来获取数据对象
using (SqlDataReader reader = com.ExecuteReader())
{
//接下来要通过reader对象一条条获取数据
//1.在获取数据之前,先判断一下本次执行查询后,是否有数据
if (reader.HasRows) {//如果有数据,true
//1.如果有数据只能一条一条获取,reader只能一条一条获取
//2.每次获取数据之前,都要先调用reader.Read()方法,向后移动一条数据,
// 如果成功移动到了某条数据上,则返回true,相反
while (reader.Read())
{
//1.获取当前reader指向的数据
//---reader.FieldCount,可以获取当前查询语句查询出的列的个个数
for(int i = 0; i < reader.FieldCount; i++)
{
//但数据库中的null值的时候,这几个方法拿到的是DBNull.value,
//不是c#的null。DB的ToString返回方法是空字符串,没有报错
//reader.GetXXX(); 使用强制类型读取列中的数据
Console.Write(reader[i] + " | ");
//通过reader["fruit_name"]索引器,可以使用列名来获取列的值
//reader.GetValue()只能通过索引来获取值
//reader.GetOrdinal()根据列的名称获取列的值
//Console.WriteLine(reader.GetOrdinal("fruit_id"));
}
Console.WriteLine();
}
}else
{
Console.WriteLine("没有查到任何数据!!!!");
}
}
}
Console.ReadKey();
}
#endregion
}
}
}