PhotonServer服务器

来源:互联网 发布:杨幂用什么软件直播 编辑:程序博客网 时间:2024/06/14 21:16

CSharp直接连接数据库



通过MySqlConnection类与MySql建立连接


  1. 建立连接
    MySqlConnection conn = new MySqlConnection(“server=服务器名称;port=端口号;database=数据库名称;user=用户名;password=密码”);
  2. 开启连接
    conn.Open();
  3. 关闭连接
    conn.Close();
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using MySql.Data.MySqlClient;namespace CSharp直接连接MySQL{    class Program    {        static void Main(string[] args)        {            //进行连接的信息参数:server服务器地址,port端口号,database数据库名,user用户名,password密码            string connectStr = "server=localhost;port=3306;database=mygamedb;user=root;password=123";            //与数据库建立连接            MySqlConnection conn = new MySqlConnection(connectStr);            try            {                //开启连接                conn.Open();            }            catch (Exception e)            {                Console.Write(e.ToString());            }            finally            {                //关闭连接                conn.Close();            }            Console.Write("已经建立连接" + conn);            Console.ReadKey();        }    }}

使用MySqlCommand对数据库进行增删改查


》MySqlCommand cmd = new MySqlCommand(sql, conn);
sql:要执行的sql语句
conn:和数据库建立好的连接
1.MySqlDataReader reader = cmd.ExecuteReader(); //执行一些查询语句
2.cmd.ExecuteNonQuery(); //执行插入 删除等没有结果返回的操作
3.cmd.ExecuteScalar(); //执行查询,返回单个值,查询单个值时优先使用


执行查询命令cmd.ExecuteReader();

》利用已经建立连接的conn进行数据库查询操作:
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader reader = cmd.ExecuteReader();
注意:查询多条语句用cmd.ExecuteReader();
查询一条语句用cmd.ExecuteScalar();

String sql = "select * from users";MySqlCommand cmd = new MySqlCommand(sql, conn);//MySqlDataReader reader = cmd.ExecuteReader();   //执行一些查询语句//cmd.ExecuteNonQuery();     //执行插入 删除//cmd.ExecuteScalar();      //执行查询,返回单个值MySqlDataReader reader = cmd.ExecuteReader();while (reader.Read()){    Console.WriteLine(reader[0].ToString() + "," + reader[1].ToString() + "," + reader[2].ToString());}

执行修改和删除命令cmd.ExecuteNonQuery();

int result = cmd.ExecuteNonQuery();
修改或删除成功数据库中的数据,返回1;否则返回0.

//修改string sql = "update users set username = 'cch',password = 'oop' where id = 4";MySqlCommand cmd = new MySqlCommand(sql, conn);int result = cmd.ExecuteNonQuery();Console.WriteLine(result);      //0或1//删除string sql = "delete from users where id = 6";MySqlCommand cmd = new MySqlCommand(sql, conn);cmd.ExecuteNonQuery();

查询单个值cmd.ExecuteReader();

》ExecuteScalar这个方法是从数据库中检索单个值返回值是object类型, 必须用与它在数据库里存放的类型相同类型或者可以转换成的类型,
》 比如数据是nchar类型值为 “123” 就可以用(int)ExecuteScalar(), 如果数据是nchar类型值为 “abc”就不能用(int)ExecuteScalar(), 就得写string result = ExecuteScalar().ToString();

string sql = "select count(*) from users";MySqlCommand cmd = new MySqlCommand(sql, conn);object res = cmd.ExecuteScalar();Console.WriteLine(res);

查询是其他取得数据的方式

reader.GetString(“username”)
reader.get类型(“字段名或者字段编号”);

string sql = "select * from users";MySqlCommand cmd = new MySqlCommand(sql, conn);MySqlDataReader reader =  cmd.ExecuteReader();while (reader.Read()){    //Console.WriteLine("id=" + reader.GetInt32(0) + ",username ="+reader.GetString(1)+",password=" + reader.GetString(2));    Console.WriteLine("id=" + reader.GetInt32("id") + ",username =" + reader.GetString("username") + ",password=" + reader.GetString("password"));

给查询语句动态添加参数

string sql = “select count(*) from users where username = @username and password = @password”;
cmd.Parameters.AddWithValue(parameterName, value);
对要进行动态添加的参数变量前加一个‘@’符号,在sql语句执行前,使用cmd.Parameters.AddWithValue(parameterName, value);动态添加
》parameterName:动态添加的变量名
》value:动态添加的值

static bool Login(string username,string password){        string connectStr = "server=localhost;port=3306;database=mygamedb;user=root;password=123";        //与数据库建立连接        MySqlConnection conn = null;        object res = null;        string sql = "select count(*) from users where username = @username and password = @password";        try        {            conn = new MySqlConnection(connectStr);            conn.Open();            MySqlCommand cmd = new MySqlCommand(sql, conn);            cmd.Parameters.Add("username", username);            cmd.Parameters.Add("password", password);            res = cmd.ExecuteScalar();        }        catch (Exception e)        {            Console.WriteLine(e.ToString());        }        finally        {            conn.Close();        }        if (Convert.ToInt32(res) != 0)        {            return true;      //登录成功返回true        }        else        {            return false;         //登录失败,返回false        }    }}

SQL中的一些函数


  1. AVG 函数
    AVG 函数返回数值列的平均值。NULL 值不包括在计算中。
    SQL AVG() 语法
    SELECT AVG(column_name) FROM table_name
  2. COUNT() 函数
    COUNT() 函数返回匹配指定条件的行数。
    SQL COUNT() 语法
    COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):
    SELECT COUNT(column_name) FROM table_name
  3. SUM() 函数
    SUM 函数返回数值列的总数(总额)。
    SQL SUM() 语法
    SELECT SUM(column_name) FROM table_name

使用NHibernate连接数据库


1.


原创粉丝点击