c# - 如何使用 WHERE 条件显示记录

标签 c# mysql

我正在使用 C# 和 MySQL 创建一个应用程序。 MySQL 表 (tbl_sales) 有四个字段 (sale_item、sale_qty、added_n 和 last_updated_on)。 last updated_on 字段的数据类型是DateTime。我想根据下面的 SQL 显示 DataGridView 中的记录。 SELECT * FROM tbl_sales WHERE last_updated_on >="+ dateTimePicker1.Text;

我收到以下错误 您的 SQL 语法有错误;查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的 "附近使用的正确语法

我使用了以下 C# 代码

private void button1_Click(object sender, EventArgs e)
    {
        string query;
        try
        {
            conLocal.Open();
            query = "SELECT * FROM tbl_sales WHERE last_updated_on >=" + textBox1.Text; // Convert.ToString(dateTimePicker1.Text);

            cmdLocal = new MySqlCommand();
            cmdLocal.Connection = conLocal;
            cmdLocal.CommandText = query;
            da = new MySqlDataAdapter();
            da.SelectCommand = cmdLocal;
            dt = new DataTable();
            da.Fill(dt);

            dataGridView1.DataSource = dt;

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

        finally
        {
            da.Dispose();
            conLocal.Close();
        }
}

MySQL table data Without WHERE condition With WHERE condition

最佳答案

正如 Chetan Ranpariya 所说,您可以使用 MySqlDbType.DateTime 数据类型设置参数,以将日期值传递到查询中,如下所示:

query = "SELECT * FROM tbl_sales WHERE last_updated_on >= @last_updated";

// conLocal is a MySqlConnection
using (var cmdLocal = new MySqlCommand(query, conLocal))
{
    cmdLocal.Parameters.Add("@last_updated", MySqlDbType.DateTime).Value = DateTime.Parse(dateTimePicker1.Text);

    // execute query & bind to DataGridView here
}

如果从日期选择器传递的字符串值具有预先指定的格式(例如 yyyy-MM-dd HH:mm:ss ),请使用 DateTime.ParseExact分配参数值时:

cmdLocal.Parameters.Add("@last_updated", MySqlDbType.DateTime).Value = DateTime.ParseExact(dateTimePicker1.Text, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);

关于c# - 如何使用 WHERE 条件显示记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50340713/

相关文章:

C# 正则表达式不匹配字符串

php - 如何设置 Laravel 关系

java mysql select函数总是返回0

mysql - 如何更改 WAMP 上运行的 MySQL 中的只读变量

c# - 从 HttpClient 实例访问 HttpClientHandler?

c# - IInvokeProvider 命名空间?

c# - 每 n 毫秒执行 x 个 Action

c# - 我收到此错误消息 : Access denied for user (Using password YES)

PHP PDO 从数据库中选择并显示在特定的 div 中

php - 根据 LastModified 列比较两个表?