C# 获取&;设置MySQL选择
我在这里遗漏了什么,似乎主窗体没有从tsDBCon类调用方法,也没有连接到数据库,我需要帮助,我是新手:设置属性,我做错了吗?谢谢C# 获取&;设置MySQL选择,c#,mysql,get,set,C#,Mysql,Get,Set,我在这里遗漏了什么,似乎主窗体没有从tsDBCon类调用方法,也没有连接到数据库,我需要帮助,我是新手:设置属性,我做错了吗?谢谢 public class tsDBCon { private string _user; private string _pass; public string User { get { retur
public class tsDBCon
{
private string _user;
private string _pass;
public string User
{
get
{
return _user;
}
set
{
_user = value;
}
}
public string Pass
{
get
{
return _pass;
}
set
{
_pass = value;
}
}
public void QueryUser()
{
tsDBCon get = new tsDBCon();
var connSettings = ConfigurationManager.ConnectionStrings["MyDB"];
{
string CN = connSettings.ConnectionString;
MySqlConnection conn = new MySqlConnection(CN);
MySqlCommand cmd = new MySqlCommand("select * from users where user = @user and pass = @pass", conn);
cmd.Parameters.AddWithValue("@user", get.User);
cmd.Parameters.AddWithValue("@pass", get.Pass);
MySqlDataReader reader = cmd.ExecuteReader();
conn.Open();
while (reader.Read())
{
get.User = reader["user"].ToString();
get.Pass = reader["pass"].ToString();
}
}
}
}
This is the code in Main Form
tsDBCon ts = new tsDBCon();
private void GetUser()
{
ts.User = txtUser.Text;
ts.Pass = txtPass.Text;
}
我在这里遗漏了什么,似乎主要形式不是调用
方法从tsDBCon
类中删除,但未连接到数据库,我需要
帮助,我是新手:设置属性,我做错了还是怎么了
是的,你做错了几件事
我想验证用户是否输入了正确的用户并通过文本框
您的代码包含几个问题:
- 当您创建
实例(例如IDisposable
)时,您需要处理它们。确保这一点的最简单方法是使用块将它们包装在MySqlConnection
中
- 如果创建对象的本地临时实例(例如,
),则在离开所处方法的范围后,分配给其属性的任何值都将消失。除非将其作为函数结果或通过tsDBCon get=new tsDBCon();
或ref
参数返回out
public class tsDBCon
{
private const string ExistsQuery = "select count(*) from users where user = @user and pass = @pass";
public tsDBCon(string user, string pass)
{
User = user;
Pass = pass;
}
public string User { get; set; }
public string Pass { get; set; }
public bool LoginExists()
{
var connSettings = ConfigurationManager.ConnectionStrings["MyDB"];
var CN = connSettings.ConnectionString;
using (var conn = new MySqlConnection(CN))
{
conn.Open();
using (cmd = new MySqlCommand(ExistsQuery, conn))
{
cmd.Parameters.AddWithValue("@user", User);
cmd.Parameters.AddWithValue("@pass", Pass);
var count = (int)cmd.ExecuteScalar();
return count > 0;
}
}
}
}
ts = new tsDBCon(txtUser.Text, txtPass.Text);
userLoginExists = ts.LoginExists();
在你的主要形式中,使用它如下:
public class tsDBCon
{
private const string ExistsQuery = "select count(*) from users where user = @user and pass = @pass";
public tsDBCon(string user, string pass)
{
User = user;
Pass = pass;
}
public string User { get; set; }
public string Pass { get; set; }
public bool LoginExists()
{
var connSettings = ConfigurationManager.ConnectionStrings["MyDB"];
var CN = connSettings.ConnectionString;
using (var conn = new MySqlConnection(CN))
{
conn.Open();
using (cmd = new MySqlCommand(ExistsQuery, conn))
{
cmd.Parameters.AddWithValue("@user", User);
cmd.Parameters.AddWithValue("@pass", Pass);
var count = (int)cmd.ExecuteScalar();
return count > 0;
}
}
}
}
ts = new tsDBCon(txtUser.Text, txtPass.Text);
userLoginExists = ts.LoginExists();
最后一句话:永远不要存储未加密的密码。
我在这里遗漏了什么,似乎主要形式不是调用
方法从tsDBCon
类中删除,但未连接到数据库,我需要
帮助,我是新手:设置属性,我做错了还是怎么了
是的,你做错了几件事
我想验证用户是否输入了正确的用户并通过文本框
您的代码包含几个问题:
- 当您创建
实例(例如IDisposable
)时,您需要处理它们。确保这一点的最简单方法是使用块将它们包装在MySqlConnection
中
- 如果创建对象的本地临时实例(例如,
),则在离开所处方法的范围后,分配给其属性的任何值都将消失。除非将其作为函数结果或通过tsDBCon get=new tsDBCon();
或ref
参数返回out
public class tsDBCon
{
private const string ExistsQuery = "select count(*) from users where user = @user and pass = @pass";
public tsDBCon(string user, string pass)
{
User = user;
Pass = pass;
}
public string User { get; set; }
public string Pass { get; set; }
public bool LoginExists()
{
var connSettings = ConfigurationManager.ConnectionStrings["MyDB"];
var CN = connSettings.ConnectionString;
using (var conn = new MySqlConnection(CN))
{
conn.Open();
using (cmd = new MySqlCommand(ExistsQuery, conn))
{
cmd.Parameters.AddWithValue("@user", User);
cmd.Parameters.AddWithValue("@pass", Pass);
var count = (int)cmd.ExecuteScalar();
return count > 0;
}
}
}
}
ts = new tsDBCon(txtUser.Text, txtPass.Text);
userLoginExists = ts.LoginExists();
在你的主要形式中,使用它如下:
public class tsDBCon
{
private const string ExistsQuery = "select count(*) from users where user = @user and pass = @pass";
public tsDBCon(string user, string pass)
{
User = user;
Pass = pass;
}
public string User { get; set; }
public string Pass { get; set; }
public bool LoginExists()
{
var connSettings = ConfigurationManager.ConnectionStrings["MyDB"];
var CN = connSettings.ConnectionString;
using (var conn = new MySqlConnection(CN))
{
conn.Open();
using (cmd = new MySqlCommand(ExistsQuery, conn))
{
cmd.Parameters.AddWithValue("@user", User);
cmd.Parameters.AddWithValue("@pass", Pass);
var count = (int)cmd.ExecuteScalar();
return count > 0;
}
}
}
}
ts = new tsDBCon(txtUser.Text, txtPass.Text);
userLoginExists = ts.LoginExists();
最后一句话:永远不要存储未加密的密码。
我在这里遗漏了什么,似乎主要形式不是调用
方法从tsDBCon
类中删除,但未连接到数据库,我需要
帮助,我是新手:设置属性,我做错了还是怎么了
是的,你做错了几件事
我想验证用户是否输入了正确的用户并通过文本框
您的代码包含几个问题:
- 当您创建
实例(例如IDisposable
)时,您需要处理它们。确保这一点的最简单方法是使用块将它们包装在MySqlConnection
中
- 如果创建对象的本地临时实例(例如,
),则在离开所处方法的范围后,分配给其属性的任何值都将消失。除非将其作为函数结果或通过tsDBCon get=new tsDBCon();
或ref
参数返回out
public class tsDBCon
{
private const string ExistsQuery = "select count(*) from users where user = @user and pass = @pass";
public tsDBCon(string user, string pass)
{
User = user;
Pass = pass;
}
public string User { get; set; }
public string Pass { get; set; }
public bool LoginExists()
{
var connSettings = ConfigurationManager.ConnectionStrings["MyDB"];
var CN = connSettings.ConnectionString;
using (var conn = new MySqlConnection(CN))
{
conn.Open();
using (cmd = new MySqlCommand(ExistsQuery, conn))
{
cmd.Parameters.AddWithValue("@user", User);
cmd.Parameters.AddWithValue("@pass", Pass);
var count = (int)cmd.ExecuteScalar();
return count > 0;
}
}
}
}
ts = new tsDBCon(txtUser.Text, txtPass.Text);
userLoginExists = ts.LoginExists();
在你的主要形式中,使用它如下:
public class tsDBCon
{
private const string ExistsQuery = "select count(*) from users where user = @user and pass = @pass";
public tsDBCon(string user, string pass)
{
User = user;
Pass = pass;
}
public string User { get; set; }
public string Pass { get; set; }
public bool LoginExists()
{
var connSettings = ConfigurationManager.ConnectionStrings["MyDB"];
var CN = connSettings.ConnectionString;
using (var conn = new MySqlConnection(CN))
{
conn.Open();
using (cmd = new MySqlCommand(ExistsQuery, conn))
{
cmd.Parameters.AddWithValue("@user", User);
cmd.Parameters.AddWithValue("@pass", Pass);
var count = (int)cmd.ExecuteScalar();
return count > 0;
}
}
}
}
ts = new tsDBCon(txtUser.Text, txtPass.Text);
userLoginExists = ts.LoginExists();
最后一句话:永远不要存储未加密的密码。
我在这里遗漏了什么,似乎主要形式不是调用
方法从tsDBCon
类中删除,但未连接到数据库,我需要
帮助,我是新手:设置属性,我做错了还是怎么了
是的,你做错了几件事
我想验证用户是否输入了正确的用户并通过文本框
您的代码包含几个问题:
- 当您创建
实例(例如IDisposable
)时,您需要处理它们。确保这一点的最简单方法是使用块将它们包装在MySqlConnection
中
- 如果创建对象的本地临时实例(例如,
),则在离开所处方法的范围后,分配给其属性的任何值都将消失。除非将其作为函数结果或通过tsDBCon get=new tsDBCon();
或ref
参数返回out
public class tsDBCon
{
private const string ExistsQuery = "select count(*) from users where user = @user and pass = @pass";
public tsDBCon(string user, string pass)
{
User = user;
Pass = pass;
}
public string User { get; set; }
public string Pass { get; set; }
public bool LoginExists()
{
var connSettings = ConfigurationManager.ConnectionStrings["MyDB"];
var CN = connSettings.ConnectionString;
using (var conn = new MySqlConnection(CN))
{
conn.Open();
using (cmd = new MySqlCommand(ExistsQuery, conn))
{
cmd.Parameters.AddWithValue("@user", User);
cmd.Parameters.AddWithValue("@pass", Pass);
var count = (int)cmd.ExecuteScalar();
return count > 0;
}
}
}
}
ts = new tsDBCon(txtUser.Text, txtPass.Text);
userLoginExists = ts.LoginExists();
在你的主要形式中,使用它如下:
public class tsDBCon
{
private const string ExistsQuery = "select count(*) from users where user = @user and pass = @pass";
public tsDBCon(string user, string pass)
{
User = user;
Pass = pass;
}
public string User { get; set; }
public string Pass { get; set; }
public bool LoginExists()
{
var connSettings = ConfigurationManager.ConnectionStrings["MyDB"];
var CN = connSettings.ConnectionString;
using (var conn = new MySqlConnection(CN))
{
conn.Open();
using (cmd = new MySqlCommand(ExistsQuery, conn))
{
cmd.Parameters.AddWithValue("@user", User);
cmd.Parameters.AddWithValue("@pass", Pass);
var count = (int)cmd.ExecuteScalar();
return count > 0;
}
}
}
}
ts = new tsDBCon(txtUser.Text, txtPass.Text);
userLoginExists = ts.LoginExists();
最后一句话:永远不要存储未加密的密码。您不必使用get。在tsDBCon类中,只需使用属性的名称。@grantwiney好的,我注意到了。RonBeyer先生,你什么意思?get:set不必要吗?这是:get.User=reader[“User”].ToString();应该是User=reader[“User”]。ToString();没有必要使用get。在“用户”或“通过”之前,与您在命令参数中使用它的位置相同。@RonBeyer它起作用了,我如何通过主窗体验证值是否正确,先生?这取决于您的意思,您正在做一些奇怪的事情,传入用户名和密码,然后从数据库中提取出来,所以我不知道你想验证什么,你不必使用get。在tsDBCon类中,只需使用属性的名称。@grantwiney好的,我注意到了。RonBeyer先生,你什么意思?get:set不必要吗?这是:get.User=reade