页面的上面有一个TextBox框,后面是个Browse按钮,好象是点几Browse按钮就把CSV文件的位置显示出来.是显示路径的吧
然后有一个Input按钮1.btnInput按下时
1.1ReadEvent
调用doRead从CVS文件中读取customer_cd(顾客号)和customer_name(顾客名)相对应的内容
1.2OperateEvent
调用doOperate将得到的customer_cd(顾客号)和customer_name(顾客名)更新或插入到库中然后判断数据库中的数据是否和从CSV读取的数据一样,如果顾客号相同,就执行更新语句,如果不同就执行插入语句.最后再把数据从数据库中读取到DataGridView中,在DataGridView中是这样显示的:顾客号 执行类型 顾客名
00001 更新 小王
00002 插入 张三应该怎么实现呢? 最好有代码 (C#.net VS2005)
谢谢各位了,不知道我说的明白吗? 谢谢大家了..
然后有一个Input按钮1.btnInput按下时
1.1ReadEvent
调用doRead从CVS文件中读取customer_cd(顾客号)和customer_name(顾客名)相对应的内容
1.2OperateEvent
调用doOperate将得到的customer_cd(顾客号)和customer_name(顾客名)更新或插入到库中然后判断数据库中的数据是否和从CSV读取的数据一样,如果顾客号相同,就执行更新语句,如果不同就执行插入语句.最后再把数据从数据库中读取到DataGridView中,在DataGridView中是这样显示的:顾客号 执行类型 顾客名
00001 更新 小王
00002 插入 张三应该怎么实现呢? 最好有代码 (C#.net VS2005)
谢谢各位了,不知道我说的明白吗? 谢谢大家了..
可以尝试先从CSV读入DataTable,再从DataTable导入数据库
...{
string strConn = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=";
strConn += filePath; //filePath, For example: C:注意斜杠要用双反斜杠,而且不带文件名
strConn += ";Extensions=asc,csv,tab,txt;";
//string strConn = @"Provider=MICROSOFT.JET.OLEDB.4.0;Extended Properties=Text;DATA SOURCE=" + path;//另一可用的链接字符串,不过要引用的是OleDb命名空间;而不是Odbc了;
OdbcConnection objConn = new OdbcConnection(strConn);
DataSet dsCSV = new DataSet();
try
...{
string strSql = "select * from " + fileName; //fileName, For example: 1.csv
OdbcDataAdapter odbcCSVDataAdapter = new OdbcDataAdapter(strSql, objConn);
odbcCSVDataAdapter.Fill(dsCSV);
return dsCSV;
}
刚抄的,其实很简单 cvs等拥有标准格式的文件都可以通过oledb来当作数据源绑定的
随便搜索下绑定的连接就可以了(例子中的不一定对)
本人更喜欢把他当text文件来读(csv是以逗号分割的,自己更方便控制),在写入自定义table
+ " Extended Properties='Text;"
+ " HDR=YES';"; private void button4_Click(object sender, EventArgs e)
{
string strExcelFileName = @"F:\My Project\Test\test\test\bin\Debug";
DataTable dt = null;
OleDbConnection connection = new OleDbConnection(); string strConnection = EXCELCONNECTION
+ "Data Source=" + strExcelFileName + ";";
connection.ConnectionString = strConnection; connection.Open();
try
{
//-----------------------------------
string strCommand = string.Format("SELECT * FROM 1.csv"); OleDbDataAdapter adapter = new OleDbDataAdapter(strCommand, connection);
dt = new DataTable();
int nCount = adapter.Fill(dt); //-------------------------------------
}
catch (Exception ex)
{
throw new ArgumentException(ex.ToString());
}
finally
{
connection.Close();
} this.dataGridView1.DataSource = dt;
}
Imports System.IO
Public Class CTextReader
Public Function doGetText(ByVal sql As String, ByVal path As String, ByVal filename As String, ByVal Format As String) As DataTable If filename.Substring(filename.LastIndexOf(".") + 1).ToLower = "csv" Then
Dim CsvManage As CCSVFile = New CCSVFile(filename)
Try
Dim a As Char
a = System.Char.Parse(",")
Dim Column As String()
Column = Format.Split(a)
Dim ColumnText As String = ""
For Each Col As String In Column
ColumnText = ColumnText + """"c + Col + """"c + ","
Next
ColumnText.Remove(ColumnText.Length - 1, 1)
CsvManage.WriteLine(1, ColumnText)
CsvManage.Submit()
CsvManage.Close()
CsvManage.Dispose()
Catch ex As Exception
CsvManage.Close()
CsvManage.Dispose()
End Try
End If If sql = "" Or sql Is Nothing Then
sql = " * "
End If
If path = "" Or path Is Nothing Then
path = System.Web.HttpContext.Current.Server.MapPath("")
End If
Dim strConn = "Driver={Microsoft Text Driver (*.txt; *.csv)};" + "Dbq=" + path + ";Extensions=csv,txt"
Dim objConn As New OdbcConnection(strConn)
Dim objTable As New DataTable
Dim fl As New FileInfo(filename)
Dim odbcCSVDataAdapter As New OdbcDataAdapter
Try
sql = "select " + sql
sql += " from [" + fl.Name + "]"
odbcCSVDataAdapter = New OdbcDataAdapter(sql, objConn)
odbcCSVDataAdapter.Fill(objTable)
Return objTable
Catch ex As Exception
Return Nothing
Finally
odbcCSVDataAdapter.Dispose()
End Try
End Function
End Class
读取一个cvs文件返回为一个datatable这样就操作这个table就可以了