C#.net中用户的8位字母数字唯一id
我想做的是,我已经创建了一个asp.net web应用程序,现在我正在使用XML保存我的数据(我没有使用SQL),我的下一个任务是为用户生成一个唯一的8位字母数字Id,他们将来将使用该Id跟踪这些请求。C#.net中用户的8位字母数字唯一id,c#,javascript,asp.net,xml,C#,Javascript,Asp.net,Xml,我想做的是,我已经创建了一个asp.net web应用程序,现在我正在使用XML保存我的数据(我没有使用SQL),我的下一个任务是为用户生成一个唯一的8位字母数字Id,他们将来将使用该Id跟踪这些请求。 我已获得此ID的特定格式,因此无法使用“GUID”。 给出的格式如下: PR000000(PR代表项目) NP000000(NP代表非项目) 因此,将根据用户输入选择前两个字母(如果是项目采购申请,则选择“PR”,如果是非项目采购申请,则选择“NP”),其余6位为简单整数,将不断增加(000
我已获得此ID的特定格式,因此无法使用“GUID”。
给出的格式如下:
- PR000000(PR代表项目)
- NP000000(NP代表非项目)
我在任何地方都搜索了很多,但都是关于php、uniquecode、GUID等。但我只想要一个简单的代码,可以轻松地执行上述任务,比如IF-Else语句+不断增加计数(000001…000002…)
这是项目和非项目选择的代码:
PROJECT<input type="radio" name="portal" id="radio1" onclick="changeMe(this);"/> <input type="text" name="textprojectOff" id="text1" value="Project Name" onclick="changeMe(this);"/>
NON-PROJECT<input type="radio" id="radio2" name="portal" onclick="changeMe(this)"/> <input type="text" name="textnonprojectOff" id="text2" value="Department" onclick="changeMe(this);"/>
<script type="text/javascript" >
function changeMe(inField)
{
var fieldId = inField.id;
var type = fieldId.substring(0, 4);
if (type == 'text') {
var name = fieldId.substring(4);
var radioButton = document.getElementById("radio" + name);
radioButton.checked = true;
} else {
var name = fieldId.substring(5);
var textField = document.getElementById("text" + name);
textField.focus();
textField.value ='';
}
}
protected void GetId()
{
MSXML2.DOMDocument objXML = new MSXML2.DOMDocument();
string oPath = null;
oPath = Server.MapPath("PARNId.xml");
XmlDocument doc = new XmlDocument();
if (objXML.load(oPath) == true)
{
objNextId = objXML.selectSingleNode("//Id").text;
}
}
protected void SetId()
{
MSXML2.DOMDocument objXML = new MSXML2.DOMDocument();
string oPath = null;
oPath = Server.MapPath("PARNId.xml");
XmlDocument doc = new XmlDocument();
if (objXML.load(oPath) == true)
{
objXML.selectSingleNode("//Id").text = objNextId;
}
if (RadioButton2.Checked == true)
{
Label1.Text = "Your PURCHASE ACTION REQUEST NUMBER Is : PR" + objNextId;
}
else
{
Label1.Text = "Your PURCHASE ACTION REQUEST NUMBER Is :NP" + objNextId;
}
objXML.save(oPath);
}
项目
非项目
功能变换器(内场)
{
var fieldId=inField.id;
变量类型=字段ID.子字符串(0,4);
如果(类型=='text'){
var name=fieldId.substring(4);
var radioButton=document.getElementById(“单选”+名称);
radioButton.checked=true;
}否则{
变量名称=字段ID.子字符串(5);
var textField=document.getElementById(“文本”+名称);
textField.focus();
textField.value='';
}
}
如果有人需要我的xml代码来帮助我,请在评论部分告诉我,我会在那时发布它。根据您的要求,您必须在检查数据库中的现有值后从服务器端代码生成唯一ID
如果需要,可以使用Oracle序列。在这种情况下不应使用客户端生成,因为有一个变化,即多个用户可以获得相同的唯一id。因此,此生成应在服务器端/db端处理。这里我得到了我自己问题的解决方案,因此,我想与所有人共享它,以便其他人可以从中获得帮助在不使用任何典型功能的情况下,我为每个用户生成了一个唯一的Id。
.cs编程:
PROJECT<input type="radio" name="portal" id="radio1" onclick="changeMe(this);"/> <input type="text" name="textprojectOff" id="text1" value="Project Name" onclick="changeMe(this);"/>
NON-PROJECT<input type="radio" id="radio2" name="portal" onclick="changeMe(this)"/> <input type="text" name="textnonprojectOff" id="text2" value="Department" onclick="changeMe(this);"/>
<script type="text/javascript" >
function changeMe(inField)
{
var fieldId = inField.id;
var type = fieldId.substring(0, 4);
if (type == 'text') {
var name = fieldId.substring(4);
var radioButton = document.getElementById("radio" + name);
radioButton.checked = true;
} else {
var name = fieldId.substring(5);
var textField = document.getElementById("text" + name);
textField.focus();
textField.value ='';
}
}
protected void GetId()
{
MSXML2.DOMDocument objXML = new MSXML2.DOMDocument();
string oPath = null;
oPath = Server.MapPath("PARNId.xml");
XmlDocument doc = new XmlDocument();
if (objXML.load(oPath) == true)
{
objNextId = objXML.selectSingleNode("//Id").text;
}
}
protected void SetId()
{
MSXML2.DOMDocument objXML = new MSXML2.DOMDocument();
string oPath = null;
oPath = Server.MapPath("PARNId.xml");
XmlDocument doc = new XmlDocument();
if (objXML.load(oPath) == true)
{
objXML.selectSingleNode("//Id").text = objNextId;
}
if (RadioButton2.Checked == true)
{
Label1.Text = "Your PURCHASE ACTION REQUEST NUMBER Is : PR" + objNextId;
}
else
{
Label1.Text = "Your PURCHASE ACTION REQUEST NUMBER Is :NP" + objNextId;
}
objXML.save(oPath);
}
调用这两个函数
GetId();
Label1.Text = objNextId;
objNextId = Convert.ToString(Convert.ToInt32(objNextId) + 1);
SetId()
我已经创建了一个名为Track.XML的单独XML文件,在其中我分配了一个节点100000,这个节点随着每个请求的增加而不断增加,最后我保存了label1.text,并保存了每个用户生成的所有PARN的记录,希望它能帮助其他人 为整数保留一个自增量数字,并将其附加到用户的默认输入中。我的第一个建议是不要仅在javascript中执行此操作,而是在后端执行。如果有人试图更改字段(通过F12控制台),或者在浏览器中禁用了javascript;你会有麻烦的。“代码隐藏”是您想要执行此操作的地方,您可以在确定数据库中实际存在的ID之后,将创建的ID转发给用户。@ArijitMukherjee-u plzzz可以告诉我如何执行此操作吗??或与之相关的任何链接??这将是一个很大的帮助。@Flater嘿,谢谢你的建议,但我不会用JavaScript来生成ID…这只是针对单选按钮和文本框…我肯定会为我的查询编写代码。如果你有它的任何代码,那么请告诉我。任何与此相关的链接或示例都将非常有帮助???@Ashish