然后在工程中再定义一个有增删改功能的类。在里面把增删改的功能转换成相应的SQL语句,调用DLL中的执行SQL语句的功能。
不建议在DLL中直接实现你要的类,封装后不仅利用率低,而且在内存管理上不好做。把常用且通用的功能放在DLL中就好了。
///////////////////////////////////////////////////////////////
代码很简单,但是很长
思路:
把数据库内容读到控件后
增:插一个新的记录
改、删:得到选中行在数据库中的唯一记录的内容,通过这个去 *** 作数据库,变更相应内容。
OracleDataAccessdll需要安装Oracle客户端,不能使用域名或ip
OracleManagedDataAccess新一代的连接工具,不依赖Oracle客户端
msado15dll是否引用了?一般放在StdAfxh里面
#import "C:\Program Files (x86)\Common Files\System\ado\msado15dll"no_namespace\
rename("EOF","adoEOF")rename("BOF","adoBOF")
把CALLVB_API这个宏,放在KMT_start函数声明前,类似下面这样
CALLVB_API int __stdcall KMT_start(short devType, char uid[], char fw[])
另外#include "stdafxh" 这一句应该出现在CPP文件的第一行的
编译完的动态库,建议楼主用dumpbin来查看一下导出的函数名是不是正确,dumpbin的用法网上随处可见
ASP调用DLL当然要注册了,不然他怎么认得路径?除了用REGSVR32在minging行中注册外,还可以使用“控制面板”->“管理工具”->“组件服务”->“COM+应用程序”->右键“添加”的方式。不过也很烦,因为要先删除以前的再添加新的。
ASPNET就不用注册,直接在工程中,“引用”之后,DLL会被复制到工程的特定目录下,那就不用指明路径,也就不用注册了
private void tables_SelectedIndexChanged(object sender, SystemEventArgs e)
{
//定义data是一个新数据表。
//这个data应该是一个全局变量。之前定义过。否则这里应该是DataTable data= new DataTable();
data = new DataTable();
//定义一个读取数据库的适配器da。这个da应该也是全局变量。
//查询语句是:"SELECT FROM " + tablesSelectedItemToString()
//conn是已经定义好的数据库连接。
da = new MySqlDataAdapter("SELECT FROM " + tablesSelectedItemToString(), conn );
//定义读取数据库的命令
//使用MySqlCommandBuilder可以根据select语句,自动生成带有Insert语句的InsertCommand等
cb = new MySqlCommandBuilder( da ); // 此处必须有,否则无法更新
//根据适配器da的查询语句的内容,把结果写入数据表data中
daFill( data );
//把dataGrid的数据源设为data,这样dataGrid中就可以显示data中的内容了
dataGridDataSource = data;
}
dll里怎么可能加载数据呢?它只能动态链接,数据源或许只是通过dll去链接而已,不知道你软件是自己做的,还是别人的。如果要看dll里面有什么东西,可以去下载一个execope的软件去查看导入或导出的函数名,但是绝对看不到源代码的
以上就是关于十万火急:怎样把对数据库的 *** 作(要ADO)放进DLL,请看详细说明全部的内容,包括:十万火急:怎样把对数据库的 *** 作(要ADO)放进DLL,请看详细说明、C#连接Oracle的时候,Oracle.DataAccess.dll能连接数据库,Oracle.ManagedDataAccess却不能、msado15.dll 在VC6.0使用ado连接数据库的问题 问题如下等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)