1、下载并添加引用MySql.Data.dll和MySql.Data.Entity.dll
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data.MySqlClient;
using MySql.Data;
namespace sql_test
{
class Program
{
static void Main(string[] args)
{
//SqlConnect();
//SqlCommad();
//SqlQuery();
//CmdQuery();
cunchu();
Console.ReadKey();
}
#region 数据库连接
/// <summary>
/// 数据库连接
/// </summary>
static void SqlConnect()
{
//1.连接通道的连接字符串
string constr = @"server=localhost;database=testsql;UID=root;PWD=123456;";
//2.连接通道对象
MySqlConnection conn = new MySqlConnection(constr);
//3.打开通道
conn.Open();
//4.关闭通道
conn.Close();
Console.WriteLine("连接对象新建操作成功");
}
#endregion
#region 增删改
static void SqlCommad()
{
int res = 0;
//1.连接通道的连接字符串
string constr = @"server=localhost;database=testsql;UID=root;PWD=123456;";
//2.连接通道对象
MySqlConnection conn = new MySqlConnection(constr);
//3.准备新增指令
/*insert into
string SqlCommad = @"insert into student_xinxi (student_ID,adress_省份,adress_详细地址,phone,身份证号) values ('07008201016','广西南宁','武鸣区双桥镇',135339274,'450122198812141655');
insert into student_xinxi (student_ID,adress_省份,adress_详细地址,phone,身份证号) values ('07008201017','广西南宁','武鸣区双桥镇',135339634,'450122198812141655');";*/
/*update
string SqlCommad = @"UPDATE student_xinxi SET phone=18922205 where student_ID='07008201016';";*/
//delete
string SqlCommad = @"DELETE FROM student_xinxi WHERE 身份证号='450122198812141655'";
//4.新建命令对象(工人),并且告诉他要走哪条路conn去做什么事情sqlstr
MySqlCommand cmd = new MySqlCommand( SqlCommad,conn);
//5.打开连接通道
conn.Open();
//6.调用方法执行数据库指令
try
{
res = cmd.ExecuteNonQuery();//返回受影响的行数
}
catch(ArgumentNullException e)
{
Console.WriteLine(e.Message);
}
//7.关闭通道
conn.Close();
if (res > 0)
{
Console.WriteLine("新增成功,返回受影响的行数:" + res);
}
else
{
Console.WriteLine(" 新增失败");
}
}
#endregion
#region 查询( 读取器方式)
/// <summary>
/// 读取器方式是指一行一行读取数据库数据
/// </summary>
static void SqlQuery()
{
//1.连接服务器
string sqlstr = @"server=127.0.0.1;database=testsql;UID=root;PWD=123456;";
MySqlConnection conn = new MySqlConnection(sqlstr);
//2.准备指令
string strcommad = @"select * from student_xinxi";
MySqlCommand cmd = new MySqlCommand(strcommad, conn);
//3.打开连接
conn.Open();
//4.读取器读取
MySqlDataReader res = cmd.ExecuteReader();
while (res.Read())//read 方法,如果读到下一行数据,则返回true,而且res本身就等于那一行数据
{
//两种读取数组方式注意下标
Console.WriteLine(res["student_ID"].ToString());
//Console.WriteLine(res[0].ToString());
}
res.Close();// 关闭读取器
conn.Close();
}
#endregion
#region 适配器读取方式
static void CmdQuery()
{
//1.连接数据库
string strserver = @"server=localhost;database=testsql;UID=root;PWD=123456;";
MySqlConnection conn = new MySqlConnection(strserver);
//2.配置指令
string strcmd = @"select * from student_xinxi";
// 创建适配器对象,告诉他要做什么事情,走哪条路去
MySqlDataAdapter da=new MySqlDataAdapter(strcmd,conn);
// 创建数据集对象(程序端的临时数据库)
DataSet ds = new DataSet();
//调用fill方法,填充数据集,(先去数据库查询结果集,并把结果集返回复制给数据集)
da.Fill(ds);
//da.Fill(ds, table1);table1为表的别名 DataTable dt = ds.Tables["table1"];
//获取数据集中的第一张表
DataTable dt = ds.Tables[0];
// 循环数据表中的每一行
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];//将循环到的行拿出来给dr对象
Console.WriteLine(dr["student_ID"]);
}
//3.打开通道
conn.Open();
//4.发送指令并以适配器方式读取
}
#endregion
#region 调用存储过程
/// <summary>
/// create procedure usp(IN id INT)
// begin
// select student_ID from student_xinxi where phone = id;
// end
/// </summary>
static void cunchu()
{
string str = @"server=localhost;database=testsql;UID=root;PWD=123456;";
MySqlConnection conn=new MySqlConnection(str);
MySqlCommand cmd = new MySqlCommand("usp", conn);//
cmd.CommandType = CommandType.StoredProcedure;// 指定命令类型为存储过程
MySqlParameter sp = new MySqlParameter();//指定存储过程中的参数
sp.ParameterName = "id";
sp.MySqlDbType = MySqlDbType.Int32;
sp.Value=1353394;
cmd.Parameters.Add(sp);// 将参数对象加入到命令对象的参数集合中()
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
Console.WriteLine("输出结果:"+dr[0].ToString());
}
}
#endregion
}
}