【发布时间】:2014-07-28 14:58:39
【问题描述】:
我尝试创建一个登录名并注册。当我尝试登录或以注册表单提交时,我有 DB_Connectivity 和查询类,但出现错误
错误您的 sql 语法有错误检查与您的 Mysql 服务器版本相对应的手册,以便在 [User Name] 附近使用正确的语法,Password From signup Where [User Name] = username1 ...... ...在第 1 行
注册异常也会发生同样的情况,在 line1 处抛出“未知错误......”
这是DB_Connectivity类
class DB_Connectivity
{
private string myconnection;
private string server;
private string database;
private string uid;
private string password;
public MySqlConnection conn;
public DB_Connectivity()
{
Initialize();
}
public void Initialize()
{
server = "localhost";
database = "my_project_data";
uid = "root";
password = "";
myconnection = "SERVER = " + server + ";" + "DATABASE =" + database + ";" + "UID =" + uid + ";" + "PASSWORD =" + password + ";";
conn = new MySqlConnection(myconnection);
}
public void openConnection()
{
try
{
conn.Open();
}
catch (MySqlException ms)
{
System.Windows.Forms.MessageBox.Show("Error Occured " + ms.Message);
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(" Error Please Contact Administrator " +ex.Message);
}
}
public void closeConnection()
{
try
{
conn.Close();
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(" Unexpected Error " +ex.Message);
}
}
}
这是查询类
class Queries :DB_Connectivity
{
private MySqlCommand cmd;
private MySqlDataReader datar;
private string sql_query;
public void insertIntoSignup(string firstname, string lastname, string address, string phone, string email, string username, string password )
{
try
{
sql_query = "Insert Into my_project_data.signup([First Name],[Last Name],Address,Phone,E-Mail,[User Name],Password) Values('"+firstname+"','"+lastname+"','"+address+"','"+phone+"','"+email+"','"+username+"','"+password+"')";
openConnection();
cmd = new MySqlCommand(sql_query, conn);
datar = cmd.ExecuteReader();
closeConnection();
}
catch(Exception ex)
{
System.Windows.Forms.MessageBox.Show("Ooooops Error " +ex.Message);
}
}
public void userlogchech(string username1, string password1)
{
try
{
sql_query = "Select [User Name],Password From signup Where [User Name] = username1 AND Password = password1";
openConnection();
cmd = new MySqlCommand(sql_query, conn);
datar = cmd.ExecuteReader();
if (datar.Read())
{
if (username1 != "")
{
System.Windows.Forms.MessageBox.Show("User Name Alredy Exists", "Error");
}
else if (password1 != "")
{
System.Windows.Forms.MessageBox.Show("Password Already Exists");
}
else
{
datar.Close();
System.Windows.Forms.MessageBox.Show("Welcome to German Moters");
}
}
else
{
System.Windows.Forms.MessageBox.Show("Try Again Later");
conn.Close();
}
}
catch(Exception ex)
{
System.Windows.Forms.MessageBox.Show(" Unknown Error " +ex.Message);
}
}
}
登录按钮
private void Log_btn_Click(object sender, EventArgs e)
{
if (User_Name_txt.Text != "" && mask_Password_txt.Text != "")
{
Classes.Queries qua = new Classes.Queries();
qua.userlogchech(User_Name_txt.Text, mask_Password_txt.Text);
}
else
{
MessageBox.Show("Please Enter Both User Name And Password");
}
}
注册表单中的提交按钮
private void Submit_btn_Click(object sender, EventArgs e)
{
if (UserName_txt.Text != "" && mask1_password_txt.Text != "" && FName_txt.Text != "" && LName_txt.Text != "" && Address_txt.Text != "" && Phone_txt.Text != "" && Email_txt.Text != "")
{
Classes.Queries qu = new Classes.Queries();
qu.insertIntoSignup(FName_txt.Text,LName_txt.Text,Address_txt.Text,Phone_txt.Text,Email_txt.Text, UserName_txt.Text,mask1_password_txt.Text );
}
else
{
MessageBox.Show("All Fields Must Be Filled ", "Error" ,MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
【问题讨论】:
-
请参阅How to create a Minimal Complete and Verifiable Example。你缺少“最小”的部分。我们不必深入研究您的所有代码,或猜测哪一行引发了异常。只提供重现问题所需的最少代码量。
-
请选择一个更好的标题,
I am a C# beginner so please help me to solve this不代表问题的内容。 -
在您的
userlogchech方法中,User Name列名中没有空格 -
您还需要努力缩小问题范围。当问题只有几行时,反刍所有代码会使您的问题很难回答。英语可能不是你的第一语言,所以没什么大不了的,但它的 Q U E R Y,而不是 Q U A R Y。
-
对不起我的愚蠢错误,我不会再这样做了,而且英语不是我的第一语言,所以对于拼写错误也很抱歉
标签: c# sql-server ado.net