OdbcConnection打开txt文件错误 各位帮我看看啊

lijing3333 2011-02-17 11:12:40

protected void Button1_Click(object sender, EventArgs e)
{
gv1.DataSource = GetDataset(@"D:\d_contacts.txt");
gv1.DataBind();

}



private DataSet GetDataset(string strFilePath)
{
if (!File.Exists(strFilePath))
{
return null;
}
string strFolderPath = Path.GetDirectoryName(strFilePath);
string strCSVFile = Path.GetFileName(strFilePath);

DataSet ds = null;
string strConnection = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq='" + strFilePath + "';Extensions=asc,csv,tab,txt;Persist Security Info=False";
try
{
using (OdbcConnection conn = new OdbcConnection(strConnection.Trim()))
{
conn.Open();
string strSql = "select * from [" + strCSVFile + "]";
OdbcDataAdapter odbcDAdapter = new OdbcDataAdapter(strSql, conn);
ds = new DataSet();
odbcDAdapter.Fill(ds, "table");
conn.Close();
}
return ds;
}
catch (Exception e)
{
throw e;
}
}



//链接字符串的信息
strConnection=Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq='D:\d_contacts.txt';Extensions=asc,csv,tab,txt;Persist Security Info=False

//错误信息
ERROR [HY024] [Microsoft][ODBC Text Driver] '(未知的)'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [IM006] [Microsoft][ODBC 驱动程序管理器] 驱动程序的 SQLSetConnectAttr 失败
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [01S00] [Microsoft][ODBC Text Driver]非法的连接串属性 Persist Security Inf
ERROR [HY024] [Microsoft][ODBC Text Driver] '(未知的)'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。


但是我路径应该没错啊 用 Server.MapPath() 也不行。。。
...全文
96 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijing3333 2011-02-17
  • 打赏
  • 举报
回复
谢谢各位。。 解决了 返回了 ds 应该是那个链接字符串有问题。在老外的网站上拷贝了个就好了。

但是填充到DS上 绑定gv后 成了乱码 贴下正确的代码 结贴


protected void Button1_Click(object sender, EventArgs e)
{
gv1.DataSource = GetDataset("C:/33s.txt");
gv1.DataBind();
}



private DataSet GetDataset(string strFilePath)
{
if (!File.Exists(strFilePath))
{
return null;
}
string strFolderPath = Path.GetDirectoryName(strFilePath);
string strCSVFile = Path.GetFileName(strFilePath);

DataSet ds = null;
string strConnection = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\\;Extensions=asc,csv,tab,txt;";
// string strConnection = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq='" + strFolderPath + "';Extensions=asc,csv,tab,txt;";
try
{
using (OdbcConnection conn = new OdbcConnection(strConnection.Trim()))
{
conn.Open();
string strSql = "select * from [" + strCSVFile + "]";
OdbcDataAdapter odbcDAdapter = new OdbcDataAdapter(strSql, conn);
ds = new DataSet();
odbcDAdapter.Fill(ds, "table");
conn.Close();
}
return ds;
}
catch (Exception e)
{
throw e;
}
}
机器人 2011-02-17
  • 打赏
  • 举报
回复
怀疑是文件夹访问权限的问题。

你换成WebSite根目录下面的某个目录再试试。。。
lijing3333 2011-02-17
  • 打赏
  • 举报
回复
现在改了下
conn 现在是 Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq='D:\';Extensions=asc,csv,tab,txt;

还是不行。。。 求教了。。。
打酱油的 2011-02-17
  • 打赏
  • 举报
回复
会不会是Persist Security Info这个属性的问题?
没打错单词吗?
机器人 2011-02-17
  • 打赏
  • 举报
回复
另外把你的安全声明去掉:Persist Security Info=False
机器人 2011-02-17
  • 打赏
  • 举报
回复
参看:http://www.connectionstrings.com/textfile

DataSource 指向的应该是文件的目录而不是路径。
PS:文件名写在sql里,你现在是对的。

所以,连接字符串修改下:
string strConnection = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq='" + strFolderPath + "';Extensions=asc,csv,tab,txt;";
子夜__ 2011-02-17
  • 打赏
  • 举报
回复
单引号 改成 双引号呢
lijing3333 2011-02-17
  • 打赏
  • 举报
回复
还是不行。。。 晕了。。。 open()的时候报错
lijing3333 2011-02-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 a274897911 的回复:]
楼主试着把D:\d_contacts.txt放到地址栏能打开文件吗?
如果不行的话就是路径问题
推荐写成 D:\\d_contacts.txt 单斜杠有时候会有问题
[/Quote]

这个可以打开的。。。。 路径没问题。。。 我写双杠试试
打酱油的 2011-02-17
  • 打赏
  • 举报
回复
楼主试着把D:\d_contacts.txt放到地址栏能打开文件吗?
如果不行的话就是路径问题
推荐写成 D:\\d_contacts.txt 单斜杠有时候会有问题

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧