3

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 コネクタを使用してきました (実際には、これらの接続を開いたり、トランザクションで閉じたりする基本クラスがあります)。しかし、私はこのアプリケーションを引き継いで、今ここにいます。

助けてくれてありがとう!

4

2 に答える 2

2

このようにしてみてください。

mySqlCommand.Parameters.Add("@CustomerID", SqlDbType.NChar, 5);
mySqlCommand.Parameters["@CustomerID"].Value = "T1COM";
于 2009-09-11T16:15:51.190 に答える
0

一部の SQL クライアント、特に MySql では「?」を使用します。それ以外の "@"。

于 2009-09-11T17:16:35.547 に答える