查询结果将转换为int或字符串

时间:2015-01-30 22:13:29

标签: c# mysql sql database connection

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。 我怎样才能做到这一点 ?谢谢。

2 个答案:

答案 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(*)

这样的参数