使用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的介麵包
和資料庫相關的都可以放你的介面里。
另外一些常用的數據操作的方法,也可以一並放進去。