C# 使用odbc在csv文件中执行SQL查询

C# 使用odbc在csv文件中执行SQL查询,c#,sql,csv,odbc,C#,Sql,Csv,Odbc,我的连接字符串 <add connectionString="Driver={Microsoft Text Driver (*.txt; *.csv)}; Dbq=E:; Extensions=asc,csv,tab,txt;" name="TestConnectionString"/> 我的CSV文件: protected void ExecuteButton_Click(object sender, EventArgs e) {

我的连接字符串

    <add connectionString="Driver={Microsoft Text Driver (*.txt; *.csv)}; Dbq=E:; Extensions=asc,csv,tab,txt;" 
     name="TestConnectionString"/>
我的CSV文件:

        protected void ExecuteButton_Click(object sender, EventArgs e)
    {
        string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString;
        using (OdbcConnection con = new OdbcConnection(connectionString))
        {
            con.Open();
            string sql = "SELECT date_id FROM date_conversion.csv WHERE [date_in_ad] = '4/13/1944'";
            using (OdbcCommand command =  new OdbcCommand(sql, con))
            {
                ResultTextBox.Text = Convert.ToString(command.ExecuteScalar());
            }
        }
    }
date_id date_in_ad ad_month_id ad_date_id ad_year_id
  1      4/13/1944    4           13          1944
  2      4/14/1944    4           14          1944
  3      4/15/1944    4           15          1944
  4      4/16/1944    4           16          1944
  5      4/17/1944    4           17          1944
我收到以下错误:
System.Data.Odbc.OdbcException:条件表达式中出现错误[22018][Microsoft][Odbc文本驱动程序]数据类型不匹配。

因此,让我们将问题重命名为“我遇到sql异常,请帮助”

它与csv无关。代码中只有一行是相关的:

string sql = "SELECT date_id FROM date_conversion.csv WHERE [date_in_ad] = '4/13/1944'";
让我们再看看错误:

条件表达式中的数据类型不匹配

只有一个条件-[date\u in\u ad]和日期文字

有一个很好的例子说明日期应该如何查找ODBC

有更多的解释。不,它们绝对不像你的绳子

日期常量如下所示:

{ d '1990-10-02' }
要使事情变得简单,请使用参数。请检查

请尝试此查询

string sql = "SELECT date_id FROM date_conversion.csv WHERE [date_in_ad] = #4/13/1944#";

如果我把广告中的日期改成日期id,我也会遇到同样的问题。尝试将有趣的字符串与int进行比较是行不通的,类似于将其与日期进行比较。谁会想到呢?提示-各位。阅读我的答案并确定日期的格式。然后抓起一本关于sql的书。@TomTom:如果我更改我的查询:从date\u conversion.csv中选择ad中的date\u,其中[date\u id]=“1”。它给我同样的错误是的。因为字符串不是int。