使用C#生成dll文件并调用
一、创建dll文件:
例如生成一个md5编码判断状态的文件,即,输入一个字符串(string A)和一个32位md5编码(string B),判断此字符串A对应的32位md5编码是否与B相等,如果相等返回true,否则返回false。
打开VS 2005,“文件”--》“新建”--“项目”,选择“Windows 控件库”,命名后点击“确定”,在“UserControl1.cs”中输入以下代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
using System.Text;
using System.Security.Cryptography;
namespace md5
{
public partial class Program : UserControl
{
#region MD5 32位加密:GetMd5Str32
/// <summary>
/// 32位MD5加密
/// </summary>
/// <param name="strSource">待加密字串</param>
/// <returns>加密后的字串</returns>
public static string GetMd5Str32(string strSource)
{
byte[] bytes = Encoding.ASCII.GetBytes(strSource);
byte[] hashValue = ((System.Security.Cryptography.HashAlgorithm)System.Security.Cryptography.CryptoConfig.CreateFromName("MD5")).ComputeHash(bytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 16; i++)
{
sb.Append(hashValue[i].ToString("x2"));
}
return sb.ToString().ToUpper();
}
#endregion
#region 核对md5编码是否一致:CheckMd5String()
/// <summary>
/// 核对md5编码是否一致
/// </summary>
/// <param name="ConvertString"></param>
/// <returns>如果一致返回true,否则返回false</returns>
///
public static bool CheckMd5String(string str1, string str2)
{
string md5String = str1; //需要验证的字符串
string md5DbString = str2; //需要核对的32位md5编码
int result = string.Compare(md5.Program.GetMd5Str32(str1), md5DbString, true);
if (result == 0)
{
return true;
}
else
{
return false;
}
}
#endregion
}
}
修改“UserControl1.Designer.cs”中的命名空间为“md5”,方法为“Program”,即可生成dll文件。
在...\bin\Debug文件假下,可以找到相应的dll文件。
二、部署dll流程:
首先把dll文件放到应用程序...\bin\Debug\下;
然后在解决方案中添加引用:右键鼠标-->添加引用-->浏览-->选择dll放置路径后点击“确定”。
注意:要在应用文件头处使用using md5;命令。
测试应用程序代码,如下:Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using md5;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string str1 = textBox1.Text.ToString();
string md5String = textBox2.Text.ToString();
textBox3.Text = md5.Program.GetMd5Str32(str1);
textBox4.Text = md5.Program.CheckMd5String(str1, md5String).ToString();
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
㈡ 9.6 如何封装sql 数据库命令举例
做成 存储过程
create procere sp_procere --创建存储过程
(@key varchar(10)) --设置传递的参数(可以没有)
as
begin
--需封装的sql语句
end
运行该存储过程
exec sp_procere 参数
㈢ SQL语句封装两个结果集,什么意思
用以个方法,接受sql语句处理后
赛选出来的数据~~
然后传给这个方法
方法将数据封装
在这个方法的集合中
㈣ 存储过程可不可以看成是对SQL语句的封装
存储过程(Stored Procere)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。也可以这样理解,存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。既然他是一个sql语句集合,就可以理解为是对sql语句的封装了,但是对实现特定功能的语句的封装。这部分语局经过编译放在数据库中,当为了满足某种需求的时候,可以调用这块已经编译好的语句块来完成。
㈤ sql2005:如何封装一些重用性高的sql语句块
把一些经常用到的存储过程放到一个程序包里面,相当于java里面的utils包,以后要调用的时候,直接包名.存储过程就行了。
比如,现在我建立一个最简单的工具包:
createorreplacepackagePKG_COMM_UTILSis
procereconsoleInfo(MSGINvarchar2);
endPKG_COMM_UTILS;createorreplacepackagebodyPKG_COMM_UTILSis
procereconsoleInfo(MSGINvarchar2)is
begin
dbms_output.put_line(MSG);
end;
endPKG_COMM_UTILS;
调用:
declare
begin
PKG_COMM_UTILS.consoleInfo('HelloWorld!');
end;
输出:
Hello World !
不懂可以再问。
㈥ java:”数据库操作封装成接口“是什么意思
楼主注意,这里指的接口,并不是指java的接口interface。是指API之类的意思。就是说
,将数据库操作封装成一个类。方便调用。
㈦ 请教如何用C封装sql语句
假如用户输入的姓名和年龄值分别保存在变量name,age中: char sql_insert[200]; sprintf(sql_insert, "INSERT INTO table values('%s','%d');", name, age); mysql_query(&mysql_conn, sql_insert); 上述语句在执行完sprintf语句后,sql_insert...
㈧ 求高手指教下。我最近在做项目,要求我把SQL封装成java的接口包
和数据库相关的都可以放你的接口里。
另外一些常用的数据操作的方法,也可以一并放进去。