【发布时间】:2015-02-17 10:46:26
【问题描述】:
我正在尝试制作的程序遇到问题,这是为了检查 mysql 数据库以查看该名称的用户是否已经退出,如果没有,它应该创建一个,并且如果是,它应该会显示错误提示。
没有编译错误,它已经到了代码的末尾,告诉我“用户已创建”但没有数据被添加到数据库中,不知道我哪里出错了,谢谢!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using MySql.Data.MySqlClient;
namespace Oswald
{
public partial class frmRegister : Form
{
public frmRegister()
{
InitializeComponent();
}
private void btnRegister_Click(object sender, EventArgs e)
{
String mysqlConnectionString = "Server=sql3.freesqldatabase.com;Database=sql367701;UID=sql367701;Password=*****;Port=3306";
MySqlConnection connection = new MySqlConnection(mysqlConnectionString);
connection.Open();
string query = "SELECT * FROM UserInfo WHERE Username='" + txtUsername.Text + "'";
bool exists = false;
MySqlCommand cmd = new MySqlCommand(query, connection);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
if(txtUsername.Text == reader.GetString("Username"))
{
MessageBox.Show("User Already Exits", "Oswald", MessageBoxButtons.OK, MessageBoxIcon.Error);
exists = true;
}
else { exists = false; }
}
reader.Close();
if (exists == false)
{
query = "INSERT INTO UserInfo (Username, Password, Email, IP) VALUES (@username, @password, @ip);";
string ip = new WebClient().DownloadString(@"http://icanhazip.com").Trim();
using (MySqlCommand cmd2 = new MySqlCommand(query, connection))
{
cmd.Parameters.AddWithValue("@username", txtUsername.Text);
cmd.Parameters.AddWithValue("@password", txtPassword.Text);
cmd.Parameters.AddWithValue("@email", txtEmail.Text);
cmd.Parameters.AddWithValue("@ip", ip);
cmd.ExecuteNonQuery();
}
MessageBox.Show("Account Created!", "Oswald", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Close();
}
}
}
}
【问题讨论】: