引:
测试:
aspx 代码
<head runat="server">
<title>无标题页</title>
<script language="javascript" type="text/javascript">
// <!CDATA[
function File_onChenge() {
var obj = window.event.srcElement;
var hdnpath=window.document.all.hdnFilePath;
hdnpath.value=obj.value;
}
// ]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="openFile" type="file" οnchange="File_onChenge()" />
<input id="hdnFilePath" type="hidden" runat="server" />
<input id="button1" runat="server" type="button" onserverclick="button1_ServerClick" value="Test"/>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>
</body>
aspx.cs代码
protected void button1_ServerClick(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection();
string strTable = "/"" + hdnFilePath.Value.Trim() + "/"";
//hdnFilePath.Value.Trim();
conn.ConnectionString = @"provider=vfpoledb.1;;data source=" + strTable;
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "set delete on ";
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
string SQLSE1 = "select * from " + strTable;
OleDbDataAdapter da = new OleDbDataAdapter(SQLSE1, conn);
DataTable dt = new DataTable();
//DataSet ds1 = new DataSet();
da.Fill(dt);
GridView1.DataSource = dt.DefaultView;
GridView1.DataBind();
}
读取成功!
sql 2005 读取DBF文件
使用 OLE DB 连接并访问远程数据的一次性的临时方法:从文件读取数据并将数据作为行集返回
只有在以下情况下才能使用 OPENROWSET 访问 OLE DB 数据源中的远程数据:指定访问接口的 DisallowAdhocAccess 注册表选项已显式设置为 0,并启用了 Ad Hoc Distributed Queries 高级配置选项。如果未设置这些选项,则默认行为不允许即席访问。
--将test.dbf中的数据复制到temp(数据库自动新创建的)表中
select * into temp from
openrowset('MICROSOFT.JET.OLEDB.4.0','dBase 5.0;DATABASE=d:/datebase/','select * from [test.dbf]')
注意:“select * from [test.dbf]”中“test.dbf”的文件名(不包括扩展名)长度不能超过8位,否则会提示找不到对象
详细可参考MSDN
测试
SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase 5.0;DATABASE=E:/','select * from [PJ111.DBF]')
读取成功!
此外还在网上查到其它相关资料,但尚未亲自测试
asp.net 读写dbf文件
C#对DBF数据库的操作
C#读取DBF文件(以文件形式读取dbf数据)