c# - 如何传递mysql查询和连接字符串并获取结果?

标签 c# .net mysql winforms

我有一个像这样的 SQL 连接字符串:

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

我有一个这样的查询:stratdate = 10-03-2001,Enddate = 20-08-2008

string sql =  string.Format(@"SELECT CONCAT(UPPER(SUBSTRING(visit_Status, 1, 1)), SUBSTRING(visit_Status FROM 2))  as Status, COUNT('x') AS Visits
                              FROM visits
                              WHERE visit_Date BETWEEN '{0}' AND '{1}'
                              GROUP BY visit_Status", StartDate.ToString(dateFormat), EndDate.ToString(dateFormat)) 

我不知道如何使用连接字符串将此查询传递到数据库并将结果放入数据表中。我正在使用 C# 编写 WinForms 应用程序并使用 MySQL 作为数据库。

我该怎么做?有人对此有任何想法吗?我如何将其作为命令文本传递给 MySQL?有人可以帮我提供示例代码片段吗?

最佳答案

public DataTable GetVisits(System.DateTime startDate, System.DateTime endData)
{
    const string SQL = "SELECT CONCAT(UPPER(SUBSTRING(visit_Status, 1, 1)), SUBSTRING(visit_Status FROM 2))  as Status, COUNT('x') AS Visits FROM(visits)  WHERE visit_Date BETWEEN @startDate AND @endData GROUP BY visit_Status";
    const string CONNSTR = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;";
    var tblVisits = new DataTable("Visits");
    using (var conn = new MySql.Data.MySqlClient.MySqlConnection(CONNSTR)) {
        var cmd = new MySql.Data.MySqlClient.MySqlCommand(SQL, conn);
        var da = new MySql.Data.MySqlClient.MySqlDataAdapter(cmd);
        var param = new MySql.Data.MySqlClient.MySqlParameter("@startDate", MySql.Data.MySqlClient.MySqlDbType.Date);
        param.Direction = ParameterDirection.Input;
        param.Value = startDate;
        cmd.Parameters.Add(param);
        param = new MySql.Data.MySqlClient.MySqlParameter("@endDate", MySql.Data.MySqlClient.MySqlDbType.Date);
        param.Direction = ParameterDirection.Input;
        param.Value = endData;
        cmd.Parameters.Add(param);
        conn.Open();
        da.Fill(tblVisits);
    }

    return tblVisits;
}

关于c# - 如何传递mysql查询和连接字符串并获取结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7339172/

相关文章:

c# - 无法在 VS 2003 中打开旧的 ASP.NET 1.1 应用程序(解决方法)

C# 日期时间 - RFC 3339 格式

javascript - 使用文本框使用php表单更新MySQL数据库

mysql - 如果第二个表没有匹配信息,如何连接两个表

mysql - 将相似范围内的数字分组

c# - 在 C# .net 4.0 中运行时加载 TLB

c# - 任何人都知道如何确定使用哪种颜色(白色或黑色)

c# - 如何使用 jQuery Ajax 调用从 ASP.NET Web Api 下载 CSV 文件

javascript - Uncaught ReferenceError : method is not defined

c# - Visual Studio 中的程序集缓存问题