2009-09-11 2 views
3

Глядя на мой журнал запросов для MySQL, я вижу, что мои параметры не добавляются. Вот мой код:Разъем MySQL: параметры не добавляются

MySqlConnection conn = new MySqlConnection(ApplicationVariables.ConnectionString()); 
       MySqlCommand com = new MySqlCommand(); 

       try 
       { 
        conn.Open(); 
        com.Connection = conn; 
        com.CommandText = String.Format(@"SELECT COUNT(*) AS totalViews 
                 FROM pr_postreleaseviewslog AS prvl 
                 WHERE prvl.dateCreated BETWEEN (@startDate) AND (@endDate) AND prvl.postreleaseID IN ({0})" 
                 , ids); 
        com.CommandType = CommandType.Text; 
        com.Parameters.Add(new MySqlParameter("@startDate", thisCampaign.Startdate)); 
        com.Parameters.Add(new MySqlParameter("@endDate", endDate)); 

        numViews = Convert.ToInt32(com.ExecuteScalar()); 
       } 
       catch (Exception ex) 
       { 
       } 
       finally 
       { 
        conn.Dispose(); 
        com.Dispose(); 
       } 

Глядя на журнал запросов, я вижу это:

SELECT COUNT(*) AS totalViews 
                 FROM pr_postreleaseviewslog AS prvl 
                 WHERE prvl.dateCreated BETWEEN (@startDate) AND (@endDate) AND prvl.postreleaseID IN (1,2) 

Я использовал разъем MySQL .NET на множестве проектов (я на самом деле есть базовый класс, который ухаживает открытия этих соединений и закрытия их транзакциями и т. д.). Однако я принял это приложение, и вот я сейчас.

Спасибо за помощь!

+0

Вы решили этот вопрос? –

ответ

2

Попробуйте вот так.

mySqlCommand.Parameters.Add("@CustomerID", SqlDbType.NChar, 5); 
mySqlCommand.Parameters["@CustomerID"].Value = "T1COM"; 
+0

Эй, там. Я пытался, как вы сказали, но вместо MySQLType.Int, я использую MySQLType.DateTime, поскольку startDate на самом деле является объектом .NET DateTime. Получено это исключение: Сведения об исключении: MySql.Data.MySqlClient.MySqlException: могут храниться только объекты MySqlParameter – StephenPAdams

+0

Возможно, я хотел сделать это быстро ;-) Попробуйте это. –

+0

См. Мое сообщение ниже, недостаточно текста в этом поле для этого. – StephenPAdams

0

Некоторые клиенты SQL, особенно для MySql, используют «?» вместо "@".

+0

MySQL позволяет? и @ по состоянию на 1.0.7, я считаю. – StephenPAdams

Смежные вопросы