因此,建议你用ADO
问题解决了,分还是给你吧,不过为了不误人子弟我还是说下正确答案。这个问题的重点不是ACCESS是语句用的不对。因为是ACCESS支持的功能不够多,当语句过长时导致出现“查询过于复杂”的错误,这里要将长的文本作为变量输入,正确的语句我贴在下面了:
Try
NewText = “特别长的文本【一千万字左右】”
Dim AccessConn As New OleDb.OleDbConnection(AccessConnectionString)
AccessConn.Open()
AccessString = "UPDATE 记录 SET 文本=? WHERE 编号=1"
Dim AccessCmd = New OleDb.OleDbCommand(AccessString, AccessConn)
AccessCmd.Parameters.Add(New OleDb.OleDbParameter)
AccessCmd.Parameters(0).Value = NewText
AccessCmd.ExecuteNonQuery()
AccessConn.Close()
Catch AccessException As Exception
MsgBox(AccessException.Message, , "保存")
End Try
这里的语句是 AccessString = "UPDATE 记录 SET 文本=? WHERE 编号=1" 其中【?】是变量,在下面的语句中对变量进行提交,这样就避免了语句过长。
50分就回答一下吧,我的答案才是正确的窗体名称如果是Form1
添加两个控件出来,一个是按扭Button1,一个是表格DataGridView1
然后你直接用我的代码就行了不多说了
你最好把我的代码复制到你的代码窗口里再看了,这里太乱了
还有啊你并没有给出数据库名称,是用Windows登陆还是SQL登陆,你要在代码里改一下,我都注释有了的你自己慢慢看下
我用的平台是WIndows VISTA , SQL 2005 , VB 2008
Imports System.Data.SqlClient
Public Class Form1
Dim LeafSqlConnection As SqlConnection '声明这些SQL的类
Dim LeafSqlCommand As SqlCommand
Dim LeafSqlDataAdapter As SqlDataAdapter
Dim LeafData As DataTable'这个是表格的类,用来装你读取的信息的表
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
LeafSqlConnection = New SqlConnection("Data Source=.Initial Catalog=你的数据库名称 Integrated Security=TruePooling=False") '如果采用windows身份登录就用这个,数据库名称我直接写成'你的数据库名称'了,没有用户名密码
'LeafSqlConnection = New SqlConnection("Initial Catalog=你的数据库名称 User ID=saPWD=leafsoftpassword") '如果采用SQL用户密码登录用这个,注意的是前面这些数据库名称我直接写成'你的数据库名称'了,你如果要读别的数据库自己改,还有用户密码自己改
LeafSqlCommand = New SqlCommand("Select * from 表1 Where 姓名='小强'", LeafSqlConnection) '这里记得名字的两边要加符号 '
LeafSqlDataAdapter = New SqlDataAdapter
LeafSqlCommand.CommandType = CommandType.Text
LeafSqlDataAdapter.SelectCommand = LeafSqlCommand
LeafData = New DataTable
LeafSqlDataAdapter.Fill(LeafData)
DataGridView1.DataSource = LeafData
End Sub
End Class
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)