资源简介
该系统是基于vs2008+Sql2005开发平台的一个纯软件系统,能实现简单的刷卡和充值功能
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Data.SqlClient;
using System.IO ;
using System.Net ;
using System.Net .Sockets ;
using System.Runtime.InteropServices;
using System.Text;
namespace server.connect
{
class connectDB
{
public static string sConnectString = “Data Source=.;Initial Catalog=CardDB;Integrated Security=True “;
//告诉编译器 这个结构体需要使用顺序布局,CharSet属性有连个CharSet.Ansi和CharSet.Unicode
[StructLayout (LayoutKind.Sequential CharSet =CharSet .Ansi Pack =1)]
public struct Message
{
public int flags;//用于辨别是哪种消息
[MarshalAs(UnmanagedType.ByValTStr SizeConst = 256)]
public string handInfor;
[MarshalAs(UnmanagedType.ByValTStr SizeConst = 11)]
public string cardID;//卡号
[MarshalAs(UnmanagedType.ByValTStr SizeConst = 16)]
public string password;//密码
[MarshalAs(UnmanagedType.ByValTStr SizeConst = 21)]
public string time;//代表各种时间,如消费时间,挂失时间等
public float restMoney;//余额
public float consumeMoney;//刷卡金额
}
//结构体转byte数组
public static byte[] StructToBytes(object structObj)
{
//得到结构体的大小
int size = Marshal.SizeOf(structObj);
//Marshal提供了一个方法集,这些方法用于分配非托管内存、复制非托管内存块、将托管类型转换为非托管类型,此外还提供了在与非托管代码交互时使用的其他杂项方法。
//创建byte数组
byte[] bytes = new byte[size];
//分配结构体大小的内存空间
IntPtr structPtr = Marshal.AllocHGlobal(size );
//将结构体拷到分配好的内存空间
Marshal.StructureToPtr(structObj structPtr false);//设置为 true 可在执行 Marshal.DestroyStructure 方法前对 ptr 参数调用此方法。 请注意,传递 false 可导致内存泄漏
//从内存空间拷到byte数组
Marshal.Copy(structPtr bytes0size );
//释放内存空间
Marshal .FreeHGlobal(structPtr);
//返回byte数组
return bytes;
}
//byte数组转结构体
public static object BytesToStruct(byte[] bytes Type type)
{
//得到结构体的大小
int size = Marshal.SizeOf(type);
//byte数组长度小于结构体的大小
if (size > bytes.Length)
{
return null;
}
//分配结构体大小的内存空间
IntPtr structPtr = Marshal.AllocHGlobal(size );
//将byte数组拷到分配好的内存空间
Marshal.Copy(bytes 0structPtr size );
//将内存空间转换为目标结构体
object obj = Marshal.PtrToStructure(structPtr type );
//释放内存空间
Marshal.FreeHGlobal(structPtr );
//返回结构体
return obj;
}
// public static bool TestConnection(out string sError)
//{
/// SqlConnection connection=new SqlConnection (sConnectString);
//try
// {
/// connection.Open();
// sError = string.Em
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3145728 2011-09-14 19:28 项目源代码\CardDB\CardDB.mdf
文件 1048576 2011-09-14 19:28 项目源代码\CardDB\CardDB_log.ldf
文件 11264 2011-09-17 10:53 项目源代码\server\bin\Debug\server.exe
文件 26112 2011-09-17 10:53 项目源代码\server\bin\Debug\server.pdb
文件 14328 2011-09-23 15:45 项目源代码\server\bin\Debug\server.vshost.exe
文件 490 2007-07-21 01:33 项目源代码\server\bin\Debug\server.vshost.exe.manifest
文件 3145728 2011-09-01 23:04 项目源代码\server\CardDB\CardDB.mdf
文件 1048576 2011-09-01 23:04 项目源代码\server\CardDB\CardDB_log.ldf
文件 6341 2011-09-17 10:51 项目源代码\server\connectDB.cs
文件 4996 2011-09-23 15:45 项目源代码\server\obj\Debug\server.csproj.FileListAbsolute.txt
文件 11264 2011-09-17 10:53 项目源代码\server\obj\Debug\server.exe
文件 26112 2011-09-17 10:53 项目源代码\server\obj\Debug\server.pdb
文件 1344 2011-08-30 21:29 项目源代码\server\Properties\AssemblyInfo.cs
文件 12275 2011-09-17 10:33 项目源代码\server\server.cs
文件 2524 2011-08-30 22:12 项目源代码\server\server.csproj
文件 77 2011-09-23 15:38 项目源代码\公交刷卡系统\app.config
文件 357888 2011-09-23 15:38 项目源代码\公交刷卡系统\bin\Debug\公交刷卡系统.exe
文件 77 2011-09-23 15:38 项目源代码\公交刷卡系统\bin\Debug\公交刷卡系统.exe.config
文件 69120 2011-09-23 15:38 项目源代码\公交刷卡系统\bin\Debug\公交刷卡系统.pdb
文件 14328 2011-09-23 15:45 项目源代码\公交刷卡系统\bin\Debug\公交刷卡系统.vshost.exe
文件 77 2011-09-23 15:38 项目源代码\公交刷卡系统\bin\Debug\公交刷卡系统.vshost.exe.config
文件 490 2007-07-21 01:33 项目源代码\公交刷卡系统\bin\Debug\公交刷卡系统.vshost.exe.manifest
文件 2848 2011-09-16 22:18 项目源代码\公交刷卡系统\Class1.cs
文件 5195 2011-09-22 21:31 项目源代码\公交刷卡系统\consumefrm_.cs
文件 9467 2011-09-22 21:31 项目源代码\公交刷卡系统\consumefrm_.Designer.cs
文件 241649 2011-09-22 21:31 项目源代码\公交刷卡系统\consumefrm_.resx
文件 1876 2011-09-22 21:14 项目源代码\公交刷卡系统\frmMain.cs
文件 6624 2011-09-22 21:14 项目源代码\公交刷卡系统\frmMain.Designer.cs
文件 16237 2011-09-22 21:14 项目源代码\公交刷卡系统\frmMain.resx
文件 6344 2011-09-22 21:31 项目源代码\公交刷卡系统\frm_AddMoney.cs
............此处省略47个文件信息
评论
共有 条评论