有没有谁能帮我把这个C#方法改写成oracle存储过程啊,小弟感激不尽。

该用户比较懒 2013-11-30 11:05:30
//根据标签加密串,返回车辆ID和顺序号
//参数:pCardText 加密的标签字符串
//返回值:车辆标签的CardInfo信息
public CardInfo getCardDecrypt(string pCardText)
{
string str = pCardText.Substring(0,16);
CardInfo trkCard = new CardInfo();
trkCard.TruckID = "-1";
trkCard.sxh = 0;

string lEncryptStr = "";
for (int i = 0; i < str.Length; i++)
{
//转换为字符
Char lChar = str[i];
//转换为ASII判断此字符的位置,当0~9转换,其他字符不变
int lAsii = (int)lChar;
//当字符为0~9时右移两位
if (lAsii >= 48 && lAsii <= 57)
{
lAsii = lAsii - 2;
if (lAsii < 48)
{
lAsii = lAsii + 57 - 48 + 1;
}
lEncryptStr = lEncryptStr + (char)lAsii;
}
else
{
lEncryptStr = lEncryptStr + lChar;
}
}
str = lEncryptStr;
string str1, str2, str3, str4;
str2 = str.Substring(0,2);
str4 = str.Substring(4,4);
str1 = str.Substring(9,3);
str3 = str.Substring(13,3);
string ltext = str1 + str2 + str3 + str4;

//解析id,sxh和单位标签号
string lTruckID = ltext.Substring(0,7);
string lsxh = ltext.Substring(7,2);
string lUnitCode = ltext.Substring(9,3);

//判断truckid,sxh是否为数字,如果不是,则返回空值
Regex rex = new Regex(@"^\d+$");
if (!(rex.IsMatch(lTruckID)) || !(rex.IsMatch(lsxh)))
{
return trkCard;
}
lTruckID = Convert.ToString(Convert.ToInt32(lTruckID));
lsxh = Convert.ToString(Convert.ToInt32(lsxh));

int flag = 0;
string[] sList = mStrUnitCode.Split(',');
for (int i = 0; i < sList.Length; i++)
{
if (sList[i] == lUnitCode)
{
flag = 1;
break;
}
}
//未找到匹配的单位标签号
if (flag == 0)
{
return trkCard;
}
//查询车号ID对应的标签号是否满足要求
str = "select * from TC_TRUCK_CARD where status='有效' and truck_id=" + lTruckID;
DataSet ds = getQuery(str);
if (ds.Tables.Count > 0)
{
DataTable m_data = ds.Tables[0];
foreach (DataRow theRow in m_data.Rows)
{
int k = Convert.ToInt32(theRow["card_no"]);
string filter = theRow["status"].ToString();
if (filter == "有效")
{
//判断验证码是否可用
if (k != Convert.ToInt32(lsxh))
{
return trkCard;
}
else
{
trkCard.TruckID = lTruckID;
trkCard.sxh = Convert.ToInt32(lsxh);
trkCard.CardNo = pCardText;
trkCard.UnitCode = mStrUnitCode;

return trkCard;
}
}
else
{
//无有效标签,返回0
return trkCard;
}
}
}
else
{
return trkCard;
}
return trkCard;

}
...全文
104 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
都没人啊

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧