2011-09-07 34 views
0

我有一个SQL连接字符串是这样的:如何传递mysql查询和连接字符串并获取结果?

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?有人会帮我一个示例代码片段?

+0

我希望这篇文章能帮助.. http://www.codeproject.com/KB/database/DatabaseAcessWithAdoNet1.aspx – renil

+0

我怎么能得到的数据到数据表不进dataset..would你请帮助.. – user933429

+0

Thanq renil ...为您的支持.. – user933429

回答

1
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; 
} 
+0

许多感谢添..现在它的工作... – user933429

+0

很高兴我能帮上忙。我有点惊讶,因为它没有经过测试,并从VB.NET转换(我的默认语言)。 –

相关问题