C# 如果(计数器==<;数据库值>;)
如何将数据库中的值设置为可用于if-else函数的int 例如:在我的数据库“armnumber=3”中,如何在if-else函数中使用它 代码C# 如果(计数器==<;数据库值>;),c#,mysql,database,C#,Mysql,Database,如何将数据库中的值设置为可用于if-else函数的int 例如:在我的数据库“armnumber=3”中,如何在if-else函数中使用它 代码 string myConnectionString; myConnectionString = "server=localhost;uid=root;pwd=root;database=medicloud;SslMode=None;charset=utf8"; try { MySqlConnection connection = new My
string myConnectionString;
myConnectionString = "server=localhost;uid=root;pwd=root;database=medicloud;SslMode=None;charset=utf8";
try
{
MySqlConnection connection = new MySqlConnection(myConnectionString);
MySqlCommand cmd = new MySqlCommand();
cmd.CommandType = CommandType.Text;
string sqlStr = "Select armnumber from assign where id=1";
cmd.CommandText = sqlStr;
cmd.Connection = connection;
connection.Open();
cmd.ExecuteNonQuery();
}
catch (MySqlException ex)
{
}
#endregion
if (counter == )
{
}
一种选择是这样的:
MySqlDataAdapter da = new MySqlDataAdapter {SelectCommand = cmd};
DataSet ds = new DataSet();
int armnumber = da.Fill(ds);
...
if (counter == armnumber)
此外,您还应始终使用,以避免:
最初的几点注意:
- 获取异常后继续操作不是一个好的做法,因此我更喜欢
中的if(counter==xx)
块try
- 如果
子句中where
的值是可变的,则使用参数化代替串联查询ID
- 由于只提取单个字段,因此请使用
代替ExecuteScalar
ExecuteNonQuery
- 您可以很好地使用
和
als来正确管理连接和命令对象
try
{
string sqlStr = "Select armnumber from assign where id=@id";
MySqlConnection connection = new MySqlConnection(myConnectionString);
MySqlCommand cmd = new MySqlCommand();
cmd.Parameters.AddWithValue("@id", 1);
cmd.CommandType = CommandType.Text;
cmd.CommandText = sqlStr;
cmd.Connection = connection;
connection.Open();
var result = cmd.ExecuteScalar();
int armnumber = result != null ? int.Parse(result.ToString()) : 0;
if (counter == armnumber)
{
// code here
}
}
catch (MySqlException ex)
{
}
您应该替换此代码
connection.Open();
MySqlDataReader reader = cmd.ExecuteReader();
reader.Read();
int databaseValue = int.Parse(reader["armnumber"].ToString());
connection.Close();
select不是“非”查询,您无法获取结果。。您需要执行该查询,并读取其在表中拾取的数字,然后您将获得int@S.Akbari啊。。。很抱歉):谢谢您的建议(:它说“int.Parse(result)”,无法将对象转换为字符串o.o当我运行它时,ExecuteScalar()会给我windows 1232错误。如何修复它?
connection.Open();
MySqlDataReader reader = cmd.ExecuteReader();
reader.Read();
int databaseValue = int.Parse(reader["armnumber"].ToString());
connection.Close();