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

标签 c# sql csv odbc

我的连接字符串

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

我的 C# 代码:

        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());
            }
        }
    }

我的 CSV 文件:

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'";

让我们再看看错误:

Data type mismatch in criteria expression

只有一个标准 - [date_in_ad] 和一个日期文字。

http://msdn.microsoft.com/en-us/library/ms710282(v=vs.85).aspx

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

http://technet.microsoft.com/en-us/library/ms190234(v=sql.90).aspx

有更多的解释。不,它们看起来绝对不像您的字符串。

日期常量如下所示:

{ d '1990-10-02' }

为了让事情变得简单 - 使用参数。请。

关于c# - 使用 odbc 在 csv 文件中执行 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21698186/

相关文章:

php - 选择列不为空的行?

sql - 将日期转换为 varchar

python - 如何获取 Pandas block 中的行数?

java - 带 StringReader 的换行符 -\n 被忽略了吗?

c# - 使用 Oledb 读取 Excel 文件 - 将 excel 文件的内容视为仅文本

c# - 如何在字符串插值中呈现可选文本

mysql - SQL:选择列值较上一行发生更改的行

Java套接字编程: Send Object as CSV or Serialized Object?

C#代码注入(inject)?

c# - 获取特定日期格式的 ID 号开始