string databaseExportPath;
//打开数据库
openFileDialog1.Filter = "dbc 数据库文件 (*.dbc)|*.dbc";
if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
//如:@"D:\temp.dbc"
databaseExportPath = openFileDialog1.FileName;
}
}
else
return;
string strConnection= "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" + databaseExportPath;
OdbcConnection odbcConDbf = new OdbcConnection(strConnection);
odbcConDbf.Open();//保存表文件
saveFileDialog1.Filter = "dbf表文件 (*.dbf)|*.dbf";
if(saveFileDialog1.ShowDialog() == DialogResult.OK)
{
//如:@"D:\temp.dbc"
this.fileExportPath = saveFileDialog1.FileName;
//如:".dbc"
this.fileExportType = Path.GetExtension(this.fileExportPath);
//如:"temp"
this.fileExportName = Path.GetFileNameWithoutExtension(this.fileExportPath);
}
else
return;
OdbcCommand odbcCommand = odbcConDbf.CreateCommand();
odbcCommand.CommandText = "create TABLE " +this.fileExportName + "(id int, name CHAR(10))";odbcCommand.ExecuteNonQuery();odbcCommand.CommandText = "insert into " + this.fileExportName +" VALUES (2001, 'zhang')";
odbcCommand.ExecuteNonQuery();
odbcConDbf.Close();--------------------------------------------------------------------------------
可以创建表,但是执行插入语句(第二条odbcCommand.ExecuteNonQuery();)时出错.
ps:如果是access文件的话则没有一点问题。
//打开数据库
openFileDialog1.Filter = "dbc 数据库文件 (*.dbc)|*.dbc";
if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
//如:@"D:\temp.dbc"
databaseExportPath = openFileDialog1.FileName;
}
}
else
return;
string strConnection= "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" + databaseExportPath;
OdbcConnection odbcConDbf = new OdbcConnection(strConnection);
odbcConDbf.Open();//保存表文件
saveFileDialog1.Filter = "dbf表文件 (*.dbf)|*.dbf";
if(saveFileDialog1.ShowDialog() == DialogResult.OK)
{
//如:@"D:\temp.dbc"
this.fileExportPath = saveFileDialog1.FileName;
//如:".dbc"
this.fileExportType = Path.GetExtension(this.fileExportPath);
//如:"temp"
this.fileExportName = Path.GetFileNameWithoutExtension(this.fileExportPath);
}
else
return;
OdbcCommand odbcCommand = odbcConDbf.CreateCommand();
odbcCommand.CommandText = "create TABLE " +this.fileExportName + "(id int, name CHAR(10))";odbcCommand.ExecuteNonQuery();odbcCommand.CommandText = "insert into " + this.fileExportName +" VALUES (2001, 'zhang')";
odbcCommand.ExecuteNonQuery();
odbcConDbf.Close();--------------------------------------------------------------------------------
可以创建表,但是执行插入语句(第二条odbcCommand.ExecuteNonQuery();)时出错.
ps:如果是access文件的话则没有一点问题。
对第二个“odbcCommand.ExecuteNonQuery();”出错信息:
未处理的“System.Data.Odbc.OdbcException”类型的异常出现在 system.data.dll 中。其他信息: 系统错误。
-------------------------------------------------------
可是可以创建表啊(打开看了)
(这是我的测试结果)
应该加一下odbcCommand.Conection = odbcConDbf
string databaseExportPath;
MessageBox.Show("请选择你存放数据库的目录...");
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
databaseExportPath = folderBrowserDialog1.SelectedPath;
}
else
return;
string strConnection = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" + databaseExportPath;
OdbcConnection odbcConDbf = new OdbcConnection(strConnection); odbcConDbf.Open(); OdbcCommand odbcCommand = odbcConDbf.CreateCommand();
odbcCommand.CommandText = "create TABLE test3 (id int, name CHAR(10),age int)";
odbcCommand.ExecuteNonQuery();
odbcCommand.CommandText = "insert into test3 VALUES (2001, 'zhang','33')";
odbcCommand.ExecuteNonQuery();
odbcConDbf.Close();
string databaseExportPath;
MessageBox.Show("请选择你存放数据库的目录...");
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
databaseExportPath = folderBrowserDialog1.SelectedPath;
}
else
return; string strConnection = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" + databaseExportPath;
OdbcConnection odbcConDbf = new OdbcConnection(strConnection); odbcConDbf.Open(); OdbcCommand odbcCommand = odbcConDbf.CreateCommand();
odbcCommand.CommandText = "create TABLE test3 (id int, name CHAR(10),age int)";
odbcCommand.ExecuteNonQuery();
odbcCommand.CommandText = "insert into test3 VALUES (2001, 'zhang','33')";
odbcCommand.ExecuteNonQuery();
odbcConDbf.Close();