C#中用Odbc操作DBF

C#中⽤Odbc操作DBF
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.Odbc;
using System.Threading;
namespace test
{
/
//<summary>
/// HR_Form_PersonnelExportDBF 的摘要描述。
///</summary>
public class HR_Form_PersonnelExportDBF : System.Windows.Forms.Form
{
private System.Windows.Forms.GroupBox groupBox1;
线粒体dna
private System.Windows.Forms.Button btnOpen;
private System.Windows.Forms.Button btnExit;
private System.Windows.Forms.Button btnSave;
private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1;        System.Windows.Forms.BindingManagerBase myBind;
///<summary>
/// ⽂件名(不包含扩展名)
///</summary>
private string _FileName="r_da";
///<summary>
/// ⽂件路径
///</summary>
private string _FilePath="";
///<summary>
/// 连接字符串
///</summary>
private string _myStrConnection;
///<summary>
/// select语句
///</summary>
private string _myStrSelect;
OdbcDataAdapter _myAdapter;
OdbcConnection _myconn;
DataSet myDataSet=new DataSet();
private System.Windows.Forms.DataGrid dataGrid1;
private System.Windows.Forms.Button btnCreate;
private System.Windows.Forms.Button btnCopy;
private System.Windows.Forms.Button btnInsert;
private System.Windows.Forms.Button btnDelete;
///<summary>
/// 設計⼯具所需的變數。
///</summary>
private System.ComponentModel.Container components = null;
public HR_Form_PersonnelExportDBF()
{
InitializeComponent();
}
/
//<summary>
/// 清除任何使⽤中的資源。
///</summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
Windows Form 設計⼯具產⽣的程式碼
[STAThread]
      static void Main()
      {
Application.Run(new HR_Form_PersonnelExportDBF());
      }
private void btnExit_Click(object sender, System.EventArgs e)
{
this.Close();
}
private void btnCreate_Click(object sender, System.EventArgs e)希洛人
{
/
/数据库连接
this._myStrConnection=@"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=c:;Exclusiv e=Yes;";
using(_myconn = new OdbcConnection(this._myStrConnection))
{
_myconn.Open();
//⽣成的dbf⽂件存放在應⽤程序所在⽬錄下,⽽不是指定的⽬錄(C:)下,需要⼿⼯去複製到指定的⽬錄
this._FileName="r_da";
using(OdbcCommand comm=new OdbcCommand("create table "+this._FileName+"(da_gh c(7) UNIQUE,d a_xm c(8)",_myconn))
泰诺福韦
{
int a=comm.ExecuteNonQuery();//返回值為-1
}
}
}
private void btnOpen_Click(object sender, System.EventArgs e)
{
//数据库连接
this._myStrConnection=@"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB="+Applicat ion.StartupPath+";Exclusive=Yes;";
_myconn = new OdbcConnection(this._myStrConnection);
_myconn.Open();
this._myStrSelect="SELECT da_gh,da_xm FROM " + this._FileName;阿基里斯
this._myAdapter = new OdbcDataAdapter(this._myStrSelect,_myconn);
//            OdbcCommandBuilder commandbuilder = new OdbcCommandBuilder(_myAdapter);
this.setDataAdapter(this._myAdapter);
//填充数据集
_myAdapter.Fill(
}
衣有年轮{
OdbcParameter para;
//msdn.microsoft/library/cht/default.asp?url=/library/CHT/cpguide/html/cpconupdatingdatab asewithdataadapterdataset.asp
//msdn.microsoft/library/cht/default.asp?url=/library/CHT/cpguide/html/cpconusingparamete rswithdataadapters.asp
//insertCommand
dataAdapter.InsertCommand=
",this
field="da_gh";
para=dataAdapter.InsertCommand.Parameters.Add(
Type.NVarChar));
para.SourceColumn=field;
field="da_xm";
para=dataAdapter.InsertCommand.Parameters.Add(
Type.NVarChar));
para.SourceColumn=field;
dataAdapter.UpdateCommand=
",
field="da_gh";
para=dataAdapter.UpdateCommand.Parameters.Add(
cType.NVarChar));
para.SourceColumn=field;
para.SourceVersion=DataRowVersion.Original;
field="da_xm";
para=dataAdapter.UpdateCommand.Parameters.Add(
cType.NVarChar));
para.SourceColumn=field;
dataAdapter.DeleteCommand=
yconn);
field="da_gh";
para=dataAdapter.DeleteCommand.Parameters.Add(
cType.NVarChar));
para.SourceColumn=field;
para.SourceVersion=DataRowVersion.Original;
}
{
{
DataRow dr=
dr["da_gh"]="b3"+row.ToString().PadLeft(5,'0');
dr["da_xm"]="張三"+row.ToString().PadLeft(4,'0');
}
}
private void btnDelete_Click(object sender, System.EventArgs e)
{
Bind!=null && Bind.Count>0)
(Bind.Current as DataRowView).Delete();
}
private void btnSave_Click(object sender, System.EventArgs e)
{
if(_myconn.State==ConnectionState.Closed)
_myconn.Open();
this._myAdapter.DataSet,this._FileName);
}
private void btnCopy_Click(object sender, System.EventArgs e)
{
選擇存放⽂件的路徑,並複製表結構到此路徑
}
}
}夫承子液H
有兩個問題:
1.創建dbf(btnCreate_Click事件)時錯誤:
類型 'System.Data.Odbc.OdbcException' 的未處理例外狀況發⽣於 system.data.dll
其他資訊: 系統錯誤。
2.在讀取已經存在的dbf到DataSet中后,刪除記錄后,按"Save"按鈕保存數據ok;但當修改了記錄或插⼊新記錄后,保存數據時出錯誤: 1.創建dbf(btnCreate_Click事件)時錯誤:
類型 'System.Data.Odbc.OdbcException' 的未處理例外狀況發⽣於 system.data.dll
其他資訊: 系統錯誤。

本文发布于:2024-09-22 05:40:51,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/571444.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:錯誤   存放   连接   記錄   具所
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议