我用vfpoledb.1驱动, 以OleDbCommand,OleDbCommandBuilder 等存取VFP数据库。保存输入的内容后,会发现备注字段中的内容有问题。
当备注的内容超过512个字符后,从第513个字符开始往后的内容并不是自己原本输入的内容,而是不断地重复第1至第512个字符的内容,而备注字段的长度与自己原本输入的内容长度一致,只是不断地重复第1至第512个字符的内容。我在本机的Win7+vs2010测试时是没有这个问题的,而在Server 2003+IIS6.0发布运行时会有以上的问题。
请各位大哥大姐指引解决这个问题,谢谢!

解决方案 »

  1.   

    部分代码如下:
    Imports System.Data.SqlClient
    Imports System.Data
    Imports System.Data.OleDb
    Imports System.Web.Configuration
    Public Class pds_list
        Inherits System.Web.UI.Page
        Public myDataTable As New DataTable
        Public myDataAdapter As New OleDbDataAdapter
        Dim cb2 As OleDbCommandBuilder
        Public sql_str As String = ""
        ............
        Protected Sub Button_save_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button_save.Click
    sql_str = " select * from pds_hz where allt(pds_no)=='" + Label_pds_no.Text.ToString.ToUpper.Trim + "'"
    Call Get_Data(sql_str, "myConnectionString", myDataTable, myDataAdapter)
                '   myDataTable.Rows(0).Item("pds_no") = Label_pds_no.Text
            myDataTable.Rows(0).Item("pds_name") = Textbox_edit_pds_name.Text.Trim
            .......
    myDataTable.Rows(0).Item("pds_re") = TextBox_pds_re.Text.Trim  '备注字段的内容 Try
                   cb2 = New OleDbCommandBuilder(myDataAdapter)
                   myDataAdapter.Update(myDataTable)
                   Label_message.Text = "The record has been updated successfully."
            Catch ex As Exception
                   Label_message.Text = ex.Message
            End Try    End Sub.........    Public Function Get_Data(ByVal SQLstr As String, ByVal theConnectionString As String, ByVal OutputTable As DataTable, ByRef MyDataAdapter As OleDbDataAdapter)
            Dim conn_db As New OleDbConnection(WebConfigurationManager.ConnectionStrings(theConnectionString).ConnectionString.ToString())
            conn_db.Open()
            MyDataAdapter = New OleDbDataAdapter(SQLstr, conn_db)
            OutputTable.Clear()
            MyDataAdapter.Fill(OutputTable)
            conn_db.Close()
            Return OutputTable.Rows.Count
        End FunctionEnd Class
      

  2.   

    我试过好多次, 甚至测试改为
    Dim x As String = "@@@###"
    Dim y As String
    y = New String("x", 2000)
    myDataTable.Rows(0).Item("pds_re") = x + y得到的备注(pds_re)内容还是如下:
    @@@###xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@@@###xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@@@###xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@@@###xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      

  3.   

    原来也有外国人遇到这个问题, 但好象都没有解决方案.
    http://social.msdn.microsoft.com/Forums/mr/visualfoxprogeneral/thread/cd4529e2-f727-40c3-8286-88c7fc1863b7
    http://us.generation-nt.com/answer/vfp-memos-oledb-help-20856112.html
    难道真是没有办法解决?
      

  4.   

    用VFP6.0重建数据库及数据表就正常了。