C#のMySQLのインストールドライブとシンプルなMySQLの動作を実現
草メイYourenによって
まず、ドライバのダウンロード
MySQLは最初のドライバをダウンロードして公式サイトに行ってきました。ダウンロード:https://dev.mysql.com/downloads/connector/net/
ドライブのバージョンに注意してください。注意:いくつかのdllファイルが表示されます解凍し、.zipファイルのバージョンをダウンロードするには、そのドライバーの必要性があります
あなたはバージョン4.0が必要な場合は、ドライバの最新の8.0.16バージョンは6.8.8バージョンを必要とする、.NETのバージョン4.5以降が必要です、あなたは、ドライバのバージョン4.0を選択することができます
私は、Visual Studio 2010は唯一の最高.net4.0をサポートしてインストールしているので、あなただけの古いドライブを使用することができます。、MySQLのコアドライバはこれを紹介するために必要な場合にのみ使用MySql.Data.dll、あるバージョンどんなに
ドライブの第二に、導入
- ランダムに新しいプロジェクト名を作成します。
- プロジェクトのルートディレクトリにプロジェクトの場所、新しいlibフォルダを検索するには
- ディレクトリにコピーしMySql.Data.dll
-
バックのVisual Studio 2010で、追加する権利への参照を追加
[参照]を選択し、MySql.Data.dllを見つけ、それを選択し、[OK]をクリックします。
第三に、データベースへの接続
- Database.csクラスを作成し、参照MySql.Data.MySqlClientクラス。そうでなければ、他のクラスでこのクラスを呼び出すことはできません、クラス名の前に世間の注目を追加します
- 初期化メソッドを書きます
public class Database
{
static MySqlConnection conn;//MySql连接
const String server = "localhost";//服务器地址
const String uid = "test";//用户名
const String pw = "123456";//密码
const String db = "test";//库名
/// <summary>
/// 初始化程序,连接数据库
/// </summary>
public static Boolean Init()
{
try
{
if (conn == null)
{
conn = new MySqlConnection("server=" + server + ";user id=" + uid + ";password=" + pw + ";database=" + db);
conn.Open();
Console.WriteLine("数据库连接成功");
}
return true;
}
catch (Exception e)//异常处理
{
Console.WriteLine("Exception caught: {0}", e);
return false;
}
}
}
3.このメソッドは、コンソール出力がある場合は、「正常に接続データベースが」正しい操作、データベース接続が成功したことを示しているかどうかを確認、メインプログラムで呼び出されます。
第四に、データベース操作のヘルパークラスを書きます
データベースの動作、したがって、そのような初期化方法として抽出することができる多くの重複したコンテンツがあります。
-
照会操作
/// <summary> /// 查询操作,成功返回MySqlDataReader,具体的数据可以从该对象中获取;失败返回null /// </summary> public static MySqlDataReader Select(String sql) { try { Init(); MySqlCommand command = new MySqlCommand(sql, conn); MySqlDataReader data = command.ExecuteReader();//这里返回从数据库获取的数据 return data; } catch (Exception e)//注意了,对数据库的操作尤为要注意异常处理,因此直接写在这里即可 { Console.WriteLine("Exception caught: {0}", e); return null; } }
-
CRUD操作
/// <summary> /// 执行一条sql指令,成功返回true,失败返回fasle /// 事实上 /// </summary> public static Boolean DbOp(String sql) { try { Init(); MySqlCommand command = new MySqlCommand(sql, conn); int result = command.ExecuteNonQuery();//这里返回的是受影响的数据条数,如果不为零则表明操作成功 return result != 0; } catch (Exception e) { Console.WriteLine("Exception caught: {0}", e); return false; } }
-
エスケープ文字列を達成
/// <summary> /// 转义字符串 例如 abc 转为 'abc' /// </summary> public static String Escape(Object str) { if (str.GetType() == "".GetType()) {//是字符串的进行防注入 return "'" + MySqlHelper.EscapeString(str.ToString()) + "'";//注意,MySQL中表示字符串时一定需要单引号或反引号 } return str.ToString(); }
検索機能を変更するために5件の簡単な追加と削除
-
データテーブル名:ユーザー
フィールド:ID、int型、名前、テキストの種類、PW、text型
あなたは以下を参照して、SQL文を作成したい場合は、可視化ツールを作成することができます
CREATE TABLE IF NOT EXISTS `user`(
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` TEXT NOT NULL,
`pw` TEXT NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
- プロジェクトで新しいクラスUser.cs、次のように
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
namespace MySqlTest
{
class User
{
public int id;//编号
public String name;//用户名
public String pw;//密码
public User()
{
}
public User(MySqlDataReader data)
{
this.id = data.GetInt16("id");
this.name = data.GetString("name");
this.pw = data.GetString("pw");
}
public User(String name, String pw)//注册时需要创建无id的新用户
{
this.name = name;
this.pw = pw;
}
public User(int id, String name, String pw)
{
this.id = id;
this.name = name;
this.pw = pw;
}
}
}
- ユーザーのクエリを達成するために
/// <summary>
/// 根据id查找指定用户
/// </summary>
public static User SelectUser(int id)
{
string sql = "SELECT * from user WHERE id = " + id;
MySqlDataReader data = Select(sql);//如果出现异常会返回null,需要注意!!
if (data != null && data.Read())
{
User user = new User(data);//由于上面已经在User的的构造函数中写了相关方法,所以这里直接调用即可
data.Close();
return user;
}
else
{
if (data != null) //如果不为空则需要关闭!
{
data.Close();
}
return null;
}
}
増加し、ユーザのを達成するために3。
/// <summary>
/// 创建新用户
/// </summary>
public static User AddUser(User user)
{
String sql = "INSERT into user(id,name,pw) values(0," + Escape(user.name) + "," + Escape(user.pw) + ")";
if (DbOp(sql))
{
return SelectUser(user.name);
}
else
{
return null;
}
}
4.更新されたユーザーを実装
/// <summary>
/// 修改用户
/// </summary>
public static Boolean UpdateUser(User user)
{
String sql = "UPDATE user SET name = " + Escape(user.name) + ",pw = " + Escape(user.pw) + " WHERE id = " + user.id;
return DbOp(sql);
}
5.削除されたユーザーを実装
/// <summary>
/// 删除用户
/// </summary>
public static Boolean DeleteUser(int id)
{
String sql = "DELETE from user WHERE id = " + id;
return DbOp(sql);
}
ます。https://www.jianshu.com/p/8a0aa1fe9ae0で再現