易语言的外部数据库怎么读写access数据库?

易语言的外部数据库怎么读写access数据库?,第1张

外部数据库组件是一个单独组件,不与其他组件一同使用,主要以

sql语句

为主.

.版本 2

.

程序集

窗口程序集_启动窗口

.

子程序

_按钮1_被单击

.

局部变量

查询

句柄

, 整数型

.如果真 (

取反

(外部数据库1.打开MDB数据库 (取运行目录 () + “\db.mdb”, , , , 真)))

信息框 (“数据库打开失败.”, 0, , )

返回 ()

.如果真结束

' ----------------------------------------判断是否连接到数据库.

查询句柄 = 外部数据库1.查询 (“select * from 表名”)

' 查询句柄,用于读数据,可以添加条件筛选.比如:

' 查询句柄 = 外部数据库1.查询 (“select * from 表名 where name =” + 编辑框2.内容)

' -----------------------------------------开始读取数据

.判断循环首 (取反 (外部数据库1.尾记录后 (查询句柄)))

列表框

1.加入项目 (外部数据库1.读 (查询句柄, 2), )

' 这里的2表示字段位置,也可以直接写名字,比如字段2为name

' 外部数据库1.读 (查询句柄, “name”)

外部数据库1.到后一记录 (查询句柄)

.判断循环尾 ()

外部数据库1.关闭记录集 (查询句柄)

' 记录集使用完毕后及时关闭.

' ----------------------------------------- 写数据很简单,直接执行sql语句.

.判断开始 (外部数据库1.执行 (“insert into 表名 (对应表内字段名称1,对应表内字段名称2) values ('内容','内容')”, ))

信息框 (“成功”, 0, , )

.默认

信息框 (“失败”, 0, , )

.判断结束

' 内容这里注意前后的单引号必须有.示例:

' 外部数据库1.执行 (“insert into 表名 (ID,name) values ('” + 编辑框1.内容 + “','” + 编辑框2.内容 + “')”, )

' ------------------------------------------修改命令 update

.判断开始 (外部数据库1.执行 (“update 表名 Set ID='” + 编辑框1.内容 + “',name='” + 编辑框2.内容, ))

信息框 (“成功”, 0, , )

.默认

信息框 (“失败”, 0, , )

.判断结束

' ---------------------------------------删除命令 delete

.判断开始 (外部数据库1.执行 (“delete from 表名 where 条件”, ))

' 示例:

' 外部数据库1.执行 (“delete from 表名 where name=” + 编辑框2.内容, )

信息框 (“成功”, 0, , )

.默认

信息框 (“失败”, 0, , )

.判断结束

.子程序 __启动窗口_将被销毁

外部数据库1.关闭 ()

首先要在工程的引用中选上Microsoft ActiveX Data Objects 2.5 Library

然后在事件中就可以定义相关的变量进行连接了

下面的例子可能对您有用:

Private Sub Command1_Click()

Dim Conn As New ADODB.Connection

Dim Rs As New ADODB.Recordset

Conn.Open connstring ="Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &“数据库的路径和名字” &"Persist Security Info=TrueJet OLEDB:Database Password= &"数据库密码"

sql = "Select * From “ &”表名" &where ID=20"

Rs.Open sql, Conn, 1, 3

If NOT rs.eof then

m_date= rs("日期型字段的名字")

m_data= rs("数值型字段的名字")

end if

上面的例子实现了查询

如果是要添加,删除,更新等 *** 作,只要编写相应的SQL语句,再用

Conn.Execute SQL 就可以了,如:

添加的:

SQL="Insert Into [UserInfo](User,Password) Values('aaaa','1234')"

Conn.Execute SQL '执行后,就添加了一条记录

删除:

SQL="Delete From [UserInfo] Where User='aaaa'"

Conn.Execute SQL '删除用户名为aaaa的用户记录

更新:

SQL="Update [UserInfo] Set Password='abcdefg' Where User='aaaa'"

Conn.Execute SQL '执行后,修改用户aaaa的密码为abcdefg

以上只是示例,在实际使用过程中,可以将一些内容用控件输入等方式进行,这样就有很大的灵活性了

追问:

Conn.Open connstring = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &App.Path &"\newdata.mdbPersist Security Info=TrueJet OLEDB:Database Password=123"

这一句发生错误

追答:

您把:

Conn.Open connstring ="Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &“数据库的路径和名字” &"Persist Security Info=TrueJet OLEDB:Database Password= &"数据库密码"

这句改为下面的两句 您再试试

connstring = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &"数据库的路径和名字" &"Jet OLEDB:Database password=" &"数据库密码"

Conn.Open connstring

假设我的数据库里有十条数据,我要将它们全部都循环读取出来,存到一个数组变量中,该怎么做呢?每个字段存一个数组

这要看您数据库里保存的数据的类型了。

如果都可以转换成字符串型的话

定义一个二维数组就可以了

例如:

1

2

3

4

5

6

7

8

9

10

dim m_data() as string

dim i as integer

do until rs.eof

ReDim Preserve m_data(Rs.Fields.Count - 1, i)

For j = 0 To Rs.Fields.Count - 1

m_data(j, i) = IIf(IsNull(Rs.Fields(j)), "", Rs.Fields(j))

next j

rs.MoveNext

i=i+1

loop

(一)把文件内容写入Access数据库的OLE对象字段中:

if (File.Exists(txtBrow.Text) != false) // 文本框txtBrow中内容为文件路径及文件名

{

//获取文件后缀

FileInfo p = new FileInfo(txtBrow.Text.Trim())

F_str_Type = p.Extension.ToLower()

if (F_str_Type.Length >5)

{

MessageBox.Show("不可识别的文件格式,请重新确认!","警告")

return

}

//判断文件大小

if (p.Length == 0)

{

MessageBox.Show("文件的大小为“0”,不能保存!", "警告")

return

}

//创建文件对象以打开的形式读取文件

FileStream sFileStream = new FileStream(txtBrow.Text, FileMode.Open)

//分配数组大小

byte[] bFile = new byte[sFileStream.Length]

//将文件内容读进数组

sFileStream.Read(bFile, 0, (int)sFileStream.Length)

//关闭文件对象

sFileStream.Close()

//查找文档类别号

OleDbDataReader topicread = SaveConn.GetReader("select File_ID from FileTopic where File_Topic='" + cbbTopic.Text.Trim() + "'")

//Read()方法用来读取OleDbDataReader对象中的记录

topicread.Read()

T_int_Topic=(int)topicread["File_ID"]

OleDbConnection conn = SaveConn.GetConn()

conn.Open()

OleDbCommand com = conn.CreateCommand()

com.CommandText = "insert into FileTitle(File_CodeID,File_TopicID,File_Title,File_Time,File_Save,File_Name,File_Type) values(@File_CodeID,@File_TopicID,@File_Title,@File_Time,@File_Save,@File_Name,@File_Type)"

com.Parameters.AddWithValue("@File_CodeID", txtCode.Text.Trim()) //文档编号

com.Parameters.AddWithValue("@File_TopicID", T_int_Topic) //文档类别号

com.Parameters.AddWithValue("@File_Title", txtTitle.Text.Trim()) //文档标题

com.Parameters.AddWithValue("@File_Time", txtTime.Text.Trim()) //存储时间

com.Parameters.AddWithValue("@File_Save", bFile) //文档内容

com.Parameters.AddWithValue("@File_Name", txtName.Text.Trim()) //经手人

com.Parameters.AddWithValue("@File_Type", F_str_Type)//文档类型

com.CommandType = CommandType.Text

com.ExecuteNonQuery()

conn.Close()

MessageBox.Show("文档资料添加成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)

(二)双击DataGridView控件某一行,显示文档内容

private void dataGridView1_DoubleClick(object sender, EventArgs e)

{

string F_str_Open

//如果不存在就创建Temp文件夹

if (Directory.Exists(Application.StartupPath + @"/Temp") == false)

{

Directory.CreateDirectory(Application.StartupPath + @"/Temp")

}

try

{

OleDbDataReader sqlread = SaveConn.GetReader("select File_Save,File_Type from FileTitle where File_CodeID='" + Convert.ToString(dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value).Trim() + "'")

sqlread.Read()

//判断文件是否已存在.

if (File.Exists(Application.StartupPath + @"/Temp/Temp" + sqlread["File_Type"]))

{

//如存在则删除

File.Delete(Application.StartupPath + @"/Temp/Temp" + sqlread["File_Type"])

}

byte[] bFile=(byte[])sqlread[0]

//创建文件对象

System.IO.FileStream sFileStream = new System.IO.FileStream(Application.StartupPath + @"/Temp/Temp" + sqlread["File_Type"], System.IO.FileMode.Create)

//将数组的内容写进文件

sFileStream.Write(bFile, 0, bFile.Length)

//关闭文件

sFileStream.Close()

Process p = new Process()

p.StartInfo.FileName = Convert.ToString(Application.StartupPath + @"/Temp/Temp" + sqlread["File_Type"])

p.Start()

p.Close()

sqlread.Close()

}

catch (Exception ee)

{

MessageBox.Show(ee.Message)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9885515.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存