如何把客户端的Excel文件保存到数据库中?急急!(在线等)

xuqlei 2003-10-08 02:59:34
如何把客户端的Excel文件保存到数据库中
...全文
202 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuqlei 2003-10-08
  • 打赏
  • 举报
回复
blp(★★★) :是把客户端的Excel文件放到数据库的一个表里,请问能不能直接通过Stream方式实现,我不想在服务器端产生一个临时文件。
blp 2003-10-08
  • 打赏
  • 举报
回复
如果程序是在服务器端运行,先上传
然后再读取excel内容,写到数据库里
如果程序在客户端运行,就直接读取excel内容,连到数据库。写到数据库里。
tang105 2003-10-08
  • 打赏
  • 举报
回复
能不能放到datagrid,再导入数据库
xuqlei 2003-10-08
  • 打赏
  • 举报
回复
chengdong77(chengdong) :能不能给个vba方面的例子,我对vba直到的不多。
chengdong77 2003-10-08
  • 打赏
  • 举报
回复
如果是要把客户端的Excel文件数据导入到数据库中,可以使用vba 。
张张好 2003-10-08
  • 打赏
  • 举报
回复
可以,如果是远程数据传输,那你需要用socket将execl文件。
oracle同样支持远程连接啊,采用类似的方法不就行了吗。
xuqlei 2003-10-08
  • 打赏
  • 举报
回复
我用的是Oracle数据库,我是想把客户端的Excel文件导入到数据库,能不能通过Stream格式在服务器端取到Excel的数据?
张张好 2003-10-08
  • 打赏
  • 举报
回复
远程吗,目标数据库是什么数据库啊?
方案一:(数据库中纪录execl文件地址)
将execl文件上传(socket)到服务器某个目录,服务器数据库中纪录文件在服务器上的地址。
方案二:(数据库中纪录execl中的数据)
提供你一个将用户execl数据上传到远端sql server数据库的解决思路:
oledb:
将execl作为数据源读入到dataset1中;
sqlclient:
连接远端数据库(ip地址);
用sqladapter、sqlcmdbuilder,获得一个数据结构与dataset1完全一致的dataset2(sqlserver);
将dataset1中的每一行添加(dataset2.addrow)到dataset2中;
最后提交sqladapter.uodate().
参考代码(vb的):(access to sqlserver)
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb

Public Class OleToSql
Private _tableName As String
Private _oleCriteria, _sqlCriteria As String

Public Sub New()

End Sub

Public Sub New(ByVal tableName As String, ByVal oleCriteria As String, ByVal sqlCriteria As String)
_tableName = tableName
_oleCriteria = oleCriteria
_sqlCriteria = sqlCriteria
End Sub

Public Function Execute() As String
Return Me.Execute(_tableName, _oleCriteria, _sqlCriteria)
End Function

Public Function Execute(ByVal tableName As String, ByVal oleCriteria As String, ByVal sqlCriteria As String) As String
Dim sqlConn As New SqlConnection(ClsConnServer.ConnStr)
Dim oleConn As New OleDbConnection(ClsConnStr.ConnStr)
Dim sqlAdapter As SqlDataAdapter, oleAdapter As OleDbDataAdapter
Dim sqlCmdBuilder As SqlCommandBuilder
Dim sqlQry, oleQry As String
Dim sqlData, oleData As DataSet
Dim row As DataRow, rowInx As Integer, rowCount As Integer
Dim isValid As Boolean
Try
'get updating data sql db
sqlConn.Open()
Dim itime As Integer = sqlConn.ConnectionTimeout

sqlQry = "select * from " & tableName & Space(1) & sqlCriteria
sqlAdapter = New SqlDataAdapter(sqlQry, sqlConn)
sqlData = New DataSet()
sqlAdapter.Fill(sqlData, tableName)

'builde ins/del command
sqlCmdBuilder = New SqlCommandBuilder(sqlAdapter)
sqlQry = "delete from " & tableName & Space(1) & sqlCriteria
sqlAdapter.DeleteCommand = New SqlCommand(sqlQry, sqlConn)
'Select Case tableName
' Case "e_yjry", "d_supervisor", "d_superchange"
' Dim DataHelper As New ClsDataHelper()
' DataHelper.F_GrnInsertCom(tableName, sqlAdapter, sqlConn)
' Case Else
sqlAdapter.InsertCommand = sqlCmdBuilder.GetInsertCommand
'End Select

'get source data from ole db
oleConn.Open()
oleQry = "select * from " & tableName & Space(1) & oleCriteria
oleAdapter = New OleDbDataAdapter(oleQry, oleConn)
oleData = New DataSet()
oleAdapter.Fill(oleData, tableName)
isValid = (oleData.Tables(tableName).Rows.Count > 0)

If isValid Then
'delete from sql db
rowCount = sqlData.Tables(tableName).Rows.Count
If rowCount > 0 Then
For rowInx = rowCount - 1 To 0 Step -1
'sepecial condition check
Dim DataHelper As New ClsDataHelper()
If DataHelper.FillRowother(sqlData.Tables(tableName), rowInx) = True Then
sqlData.Tables(tableName).Rows(rowInx).Delete()
End If
Next
End If

rowCount = oleData.Tables(tableName).Rows.Count
For rowInx = 0 To rowCount - 1
'For Each row In oleData.Tables(tableName).Rows
Dim newRow As DataRow = sqlData.Tables(tableName).NewRow
Dim col As DataColumn
'sepecial condition check
Dim DataHelper As New ClsDataHelper()
If DataHelper.FillRow(oleData.Tables(tableName), rowInx) = True Then
For Each col In sqlData.Tables(tableName).Columns
newRow(col.ColumnName) = oleData.Tables(tableName).Rows(rowInx)(col.ColumnName)
Next
sqlData.Tables(tableName).Rows.Add(newRow)
End If
Next
sqlAdapter.ContinueUpdateOnError = True
sqlAdapter.Update(sqlData, tableName)
End If

Catch e As Exception
sqlConn.Close() : oleConn.Close()
ClsReturnData.strError += ClsDataHelper.GetTableRefName(tableName) & " 数据上传失败." + Chr(13)
Finally
sqlConn.Close() : oleConn.Close()
sqlConn.Dispose() : oleConn.Dispose()
End Try
End Function

End Class

xuqlei 2003-10-08
  • 打赏
  • 举报
回复
没有人关注吗?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧