下面在VS里面对数据库进行增删改查的操作:
首先是查询数据:
public static void ReadDataBase()
{
string str = "select* from mytest.user";
MySqlCommand cmd = new MySqlCommand(str, connection);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader[0].ToString()+"\t"+reader[1].ToString()+"\t"+reader[2].ToString());
}
}
首先编写Sql语句的查询语句,我这里是查询所有的User内容。然后获取MySql的执行命令,最后执行使用命令执行读书方法返回一个MySqlDataReader的类型。reader.Read()返回一个Bool类型,表示读取下一条记录,对结果进行输出得到:
对比数据库:
。
还可以使用Get方法直接对结果进行查询:
public static void ReadDataBase()
{
string str = "select* from mytest.user";
MySqlCommand cmd = new MySqlCommand(str, connection);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
// Console.WriteLine(reader[0].ToString()+"\t"+reader[1].ToString()+"\t"+reader[2].ToString());
Console.WriteLine(reader.GetInt32("id"));
Console.WriteLine(reader.GetString("username"));
Console.WriteLine(reader.GetString("password"));
}
}
输出结果:
下面查询一列数据或者一个单独的数据
public static void VerifyLoad()
{
string str = "select username from user ";
MySqlCommand cmd = new MySqlCommand(str, connection);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
Console.WriteLine(reader[i].ToString());
}
}
}
读取的操作都是一样,只需要写对正确的Sql语句:
查询第一个玩家的名字就改变Sql语句为;
下面使用带参的方法判断登陆的用户名密码是否正确:
public static void VerifyLoad(string username, string password)
{
string str = "select *from user where username=@username and password=@password";
MySqlCommand cmd = new MySqlCommand(str, connection);
cmd.Parameters.AddWithValue("username", username);
cmd.Parameters.AddWithValue("password", password);
MySqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
Console.WriteLine("登陆成功");
}
else
{
Console.WriteLine("用户名或者密码错误");
}
}
在Main方法里调用VerifyLoad("one","1");结果为:。需要注意的是在Sql语句里面的@后面的username和password必须和下面cmd.Parameters.AddWithValue()里面的参数""username""。""password""完全一样,他们的作用是定义@后面的usernme和password。cmd.Parameters.AddWithValue()会把第二个参数赋值个第一个参数,。
或者我们可以使用如下写法:
public static void VerifyLoad(string name, string word)
{
string str = "select *from user where username='"+name+"' and password='"+word+"'";
MySqlCommand cmd = new MySqlCommand(str, connection);
MySqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
Console.WriteLine("登陆成功");
}
else
{
Console.WriteLine("用户名或者密码错误");
}
}
直接对参数代入Sql语句进行读取,就不需要添加cmd.Parameters.AddWithValue()方法。
欢迎加群:4364930讨论。