gridview 导出dbf
public static string ExDBF(GridView gr, string tname, string fname){
string sp = HttpContext.Current.Request.MapPath("~/Excel");
if (System.IO.File.Exists(sp + "/" + fname))
System.IO.File.Delete(sp + "/" + fname);
string newname = sp + "/" + fname;
//构造sql 语句,建立数据表
string sql = @"create table [" + newname + "](i int(10)";
string s1 = "insert into [" + newname + "](i";
for (int i = 0; i < gr.Columns.Count; i++)
{
sql = sql + "," + gr.Columns[i].HeaderText + " char(254)";
s1 = s1 + "," + gr.Columns[i].HeaderText;
}
sql = sql + ")";
s1 = s1 + ") values(";
//采用odbc导入数据
string strc = @"Driver={Microsoft Visual Foxpro Driver};sourcetype=DBF;sourceDB=" + sp + "/" + ";Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO";
using (System.Data.Odbc.OdbcConnection cn = new System.Data.Odbc.OdbcConnection(strc))
{
System.Data.Odbc.OdbcCommand odm = new System.Data.Odbc.OdbcCommand(sql, cn);
try
{
if (cn.State != System.Data.ConnectionState.Open) cn.Open();
odm.ExecuteNonQuery();
foreach (GridViewRow r in gr.Rows)
{
string s2 = s1 + (r.RowIndex + 1).ToString();
for (int j = 0; j < gr.Columns.Count; j++)
{
s2 = s2 + ",'" + r.Cells[j].Text.ToString().Replace(" ", "") + "'";
}
s2 = s2 + ")";
System.Data.Odbc.OdbcCommand odm1 = new System.Data.Odbc.OdbcCommand(s2, cn);
odm1.ExecuteNonQuery();
}
}
catch (Exception e)
{
TLCWebLib.CTLEvent.logError("CExpExcel:ExExcel" + e.Message + "s2");
}
finally
{
odm.Dispose();
cn.Close();
odm.Dispose();
}
return "~/Excel/" + fname;
}
}
执行到红色部分就报ERROR [42000] [Microsoft][ODBC Visual FoxPro Driver]Command contains unrecognized phrase/keyword.错误,而且怎样存储长度超过255的数据呢?请高人指点!!!! --------------------编程问答--------------------
补充:.NET技术 , C#