string komut = "SELECT Count FROM servers WHERE id = 1";
MySqlDataAdapter da = new MySqlDataAdapter(komut, baglanti);
int result = da;
我这样的代码我想要:“SELECT Count FROM Server WHERE id = 1”查询的结果将转换为结果varuable。 我怎样才能做到这一点 ?谢谢。
答案 0 :(得分:0)
要正确实现这一目标:
var query = "SELECT COUNT(*) AS Rows FROM [Table] WHERE Id = @Id";
您可以这样做以阻止语法查询语言(SQL)注入。一旦定义了查询,您就会:
private readonly string dbConnection;
private const string query = "SELECT COUNT(*) AS Rows FROM [Table] WHERE Id = @Id";
int? rows;
using(SqlConnection connection = new SqlConnection(dbConnection))
using(SqlCommand command = new SqlCommand(query, connection))
{
connection.Open();
command.Parameters.Add("@Id", SqlDbType.Int).Value = id;
// command.Parameters.AddWithValue("@Id", id); // Another approach.
using(SqlDataReader reader = command.ExecuteReader())
if(reader.Read())
rows = reader["Rows"] as int?;
}
那应该返回有效行数的integer
。
重要提示:如果转换为整数失败,int?
将允许返回null
。而不是抛出 Invalid Cast Exception 。其次,大部分数据都包含在using
中,这将实现IDisposable
方法以释放资源。
其余的应该是相对直接的。
答案 1 :(得分:0)
sql查询无效。
count函数需要一个像count(*)
这样的参数