C# 让GetDecimal开始工作
我希望C#读取痛苦列,如果它等于0,则显示消息“否”,如果它等于1,则显示消息“是”。痛苦列是INT类型,是第8列,请尝试如下操作C# 让GetDecimal开始工作,c#,mysql,if-statement,decimal,datareader,C#,Mysql,If Statement,Decimal,Datareader,我希望C#读取痛苦列,如果它等于0,则显示消息“否”,如果它等于1,则显示消息“是”。痛苦列是INT类型,是第8列,请尝试如下操作 MySqlConnection con = new MySqlConnection("host=*;user=*;password=*;database=*;"); MySqlCommand cmd = new MySqlCommand("SELECT * FROM members WHERE username = '" + textBox2.Text + "' A
MySqlConnection con = new MySqlConnection("host=*;user=*;password=*;database=*;");
MySqlCommand cmd = new MySqlCommand("SELECT * FROM members WHERE username = '" + textBox2.Text + "' AND password = '" + textBox3.Text + "';");
cmd.Connection = con;
DataTable dt = new DataTable();
con.Open();
MySqlDataReader reader = cmd.ExecuteReader();
if (reader.Read() != false)
{
if (reader.IsDBNull(0) == true)
{
cmd.Connection.Close();
reader.Dispose();
cmd.Dispose();
MessageBox.Show("Oops!There was a problem!");
}
else
{
cmd.Connection.Close();
reader.Dispose();
cmd.Dispose();
this.Hide();
Main main = new Main();
main.Show();
MySqlCommand cmmd = new MySqlCommand("SELECT Pain FROM members WHERE username='" + textBox2.Text + "';");
cmmd.Connection = con;
con.Open();
MySqlDataReader read = cmmd.ExecuteReader();
if (read.Read())
{
if (read.GetDecimal(0) == 1)
{
MessageBox.Show("NO");
cmmd.Connection.Close();
read.Dispose();
cmmd.Dispose();
}
else
{
MessageBox.Show("YES");
cmmd.Connection.Close();
read.Dispose();
cmmd.Dispose();
}
}
}
else
{
MessageBox.Show("You Login Information is incorrect!");
}
这是一个INT类型-然后可能使用
GetInt32()
?还有,这是否引发了错误?不,现在很好,非常感谢:)我得到了以下错误:与“INT.TryParse”(string,out INT)匹配的最佳重载方法'有一些无效参数参数1:无法从'object'转换为'string'常量值'1'无法转换为'bool'@VlasiuRobert您的pain列是否允许空值?int?pain=(int?)cmmd.ExecuteScalar();指定的强制转换无效..您的意思是如果列为Null?@Vlasiurbert我添加了一些最佳实践的示例代码,不使用内联参数,如果您使用块,则不需要手动处理/关闭连接等,也不需要两次调用数据库
using (var con = new MySqlConnection("host=*;user=*;password=*;database=*;"))
using (var cmd = con.CreateCommand())
{
cmd.CommandText = "SELECT username, Pain FROM members WHERE username = @UserName AND password = @Password";
cmd.Parameters.AddWithValue("@UserName", textBox2.Text);
cmd.Parameters.AddWithValue("@Password", textBox3.Text);
con.Open();
using (var reader = cmd.ExecuteReader())
{
if (reader.Read())
{
var username = reader.GetString(0);
if (!reader.IsDBNull(1))
{
var pain = reader.GetInt32(1);
if (pain == 1)
{
MessageBox.Show("NO");
}
else
{
MessageBox.Show("YES");
}
}
}
else
{
MessageBox.Show("You Login Information is incorrect!");
}
}
}