我的连接字符串
<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/