vb.net中从excel读取数据到DataGridView中的数据显示问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb.net中从excel读取数据到DataGridView中的数据显示问题相关的知识,希望对你有一定的参考价值。
excel中同样是自定义类型的时间,在DataGridView中显示为什么不一样?
excel中的数据:
DataGridView中显示为:
第三列的日期后面为什么会多出来时间?
代码:
Dim k As Integer = 0
Dim itemArray As Object()
For i As Integer = 0 To ds.Tables("sheet").Rows.Count - 1
Me.DataGridView1.Rows.Add()
k = Me.DataGridView1.Rows.Count
itemArray = ds.Tables("sheet").Rows(i).ItemArray
For j As Integer = 0 To itemArray.Length - 1
Me.DataGridView1.Rows(k - 1).Cells(j).Value = itemArray(j).ToString
Next
Next
我把第三列的显示格式改了:
Me.DataGridView1.Columns("出生日期").DefaultCellStyle.Format = "d"
为什么显示的时候,还是有时间啊?
最好把源数据转成字符串形式,
至于转换有多种方式,你自己选择。
VB.NET 通过代码将 Excel 文档加载到 SQL Server 数据库表中
【中文标题】VB.NET 通过代码将 Excel 文档加载到 SQL Server 数据库表中【英文标题】:VB.NET load Excel document into SQL Server database table via code 【发布时间】:2015-12-22 00:09:02 【问题描述】:我想将 Excel 文档加载到我的 VB.NET 项目中,然后将 Excel 文档中的所有数据加载到我的 SQL Server 数据库中。
SQL Server TCustomers
中的表名,包含以下列:
CustomerID, FirstName, LastName, OrderID
这就是我的数据在 datagridview 中的样子:
CustomerID FirstName LastName OrderID
01 Jack Collin 100
我的 Excel 表格中的数据以相同的方式设置。
Cell: A1 ---- B1 ---- C1 ---- D1
CustomerID----FirstName-LastName-OrderID
-02 ---- Mike ---- Angel ---- 200
我已尝试使用以下代码来完成此任务,但它没有做任何事情:
Dim ExcelConnection As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Spreadsheet.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=Yes""")
ExcelConnection.Open()
Dim expr As String = "SELECT * FROM [Sheet1$]"
Dim objCmdSelect As OleDbCommand = New OleDbCommand(expr, ExcelConnection)
Dim objDataR As OleDbDataReader
Dim SQLconne As New SqlConnection()
Dim ConnString As String = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\MyDatabase.mdf;Integrated Security=True"
SQLconne.ConnectionString = ConnString
SQLconne.Open()
Using bulkCopy As SqlBulkCopy = New SqlBulkCopy(SQLconne)
bulkCopy.DestinationTableName = "TCustomers"
Try
objDataR = objCmdSelect.ExecuteReader
bulkCopy.WriteToServer(objDataR)
objDataR.Close()
SQLconne.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Using
感谢任何帮助。
【问题讨论】:
【参考方案1】:我之前使用过 SqlBulkCopy 对象并遇到了同样的问题。
尝试明确设置列映射。当我这样做时它起作用了。
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.columnmappings%28v=vs.110%29.aspx
【讨论】:
谢谢,我会调查的。【参考方案2】:连接字符串中的另一个 IMEX=1 起作用了。
看到这个问题:
SqlBulkCopy from Spreadsheet
【讨论】:
以上是关于vb.net中从excel读取数据到DataGridView中的数据显示问题的主要内容,如果未能解决你的问题,请参考以下文章
vb.net如何与excel建立连接,并从里面查询并读取数据?