表结构的唯一性判断(急)(分数不够可以再加) 如果为SQL Server数据库,这个字段没什么意义,可以选用uniqueidentifier类型 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select Id from table where Id = 你要判断的Id如果有返回值就表示有该ID;如果没有返回值,则没有该ID;:) 项目ID是以前通过填写添加的,后面添加的时候不能和前面的重复,如果和数据库中的项目ID比对之后,发现该项目ID重复,就不应该允许通过提交。 提交前先检查ID是否存在,select count(*) from table where Id = 你要判断的Id,返回值>0提示用户重新输入该字段的值. try{ ...提交;}catch(){ ..."已存在,请重新输入!"}你是用ACCESS的吧? private void Button1_Click(object sender, System.EventArgs e) { if (TextBox1.Text=="") { Response.Write("<script language=javascript>alert('项目名称不能为空!');</script>"); } else if (TextBox2.Text=="") { Response.Write("<script language=javascript>alert('项目编号不能为空!');</script>"); } else if (TextBox3.Text=="") { Response.Write("<script language=javascript>alert('起止时间不能为空!');</script>"); } else if (TextBox4.Text=="") { Response.Write("<script language=javascript>alert('项目版本不能为空!');</script>"); } else { 应该在此处判断item2的字段是否重复。Response.Write("<script language=javascript>alert('该项目编号已经存在');</script>"); } SqlConnection myConnection =new SqlConnection("server=(local);database=testinfo;uid=sa;pwd="); String insertCmd = "insert into pro_info (pro_name, proid, pro_date, version) values (@item1,@item2,@item3,@item4)"; SqlCommand myCommand = new SqlCommand(insertCmd, myConnection); myCommand.Parameters.Add(new SqlParameter("@item1",SqlDbType.NChar,40));myCommand.Parameters["@item1"].Value=TextBox1.Text; myCommand.Parameters.Add(new SqlParameter("@item2",SqlDbType.NChar,40));myCommand.Parameters["@item2"].Value=TextBox2.Text; myCommand.Parameters.Add(new SqlParameter("@item3",SqlDbType.NChar,40));myCommand.Parameters["@item3"].Value=TextBox3.Text; myCommand.Parameters.Add(new SqlParameter("@item4",SqlDbType.NChar,40));myCommand.Parameters["@item4"].Value=TextBox4.Text;myCommand.Connection.Open();myConnection.Close();Response.Write("<script language=javascript>alert('项目添加成功!');</script>"); } } } private void Button2_Click(object sender, System.EventArgs e) { TextBox1.Text=""; TextBox2.Text=""; TextBox3.Text=""; TextBox4.Text=""; }判断项目编号重复的条件是什么即是本问题的关键!谢谢诸位支持! 判断项目编号重复的条件是什么即是本问题的关键!这个好象不是很困难呀;select item2 from table where item2= 你要判断的item2//就是item2呀;如果有返回值就表示有该item2;如果没有返回值,则没有该item2;:) 项目编号由程序生成就不会重复了!!首先:select max(项目编号) from table然后在将结果+1就可以了!那个项目编号不让填入。TextBox2.Enabled=false; 你把数据连接和添加数据那一串代码放到"项目版本不能为空"那个条件里面去,private void Button1_Click(object sender, System.EventArgs e) { if (TextBox1.Text=="") { Response.Write("<script language=javascript>alert('项目名称不能为空!');</script>"); } else if (TextBox2.Text=="") { Response.Write("<script language=javascript>alert('项目编号不能为空!');</script>"); } else if (TextBox3.Text=="") { Response.Write("<script language=javascript>alert('起止时间不能为空!');</script>"); } else if (TextBox4.Text=="") { Response.Write("<script language=javascript>alert('项目版本不能为空!');</script>"); } else { //应该在此处判断item2的字段是否重复。 try{SqlConnection myConnection =new SqlConnection("server=(local);database=testinfo;uid=sa;pwd="); String insertCmd = "insert into pro_info (pro_name, proid, pro_date, version) values (@item1,@item2,@item3,@item4)"; SqlCommand myCommand = new SqlCommand(insertCmd, myConnection);//注意这里 myCommand.Parameters.Add(new SqlParameter("@item4",SqlDbType.NChar,40));myCommand.Parameters["@item4"].Value=TextBox4.Text;//-----myCommand.Parameters.Add(new SqlParameter("@item1",SqlDbType.NChar,40));myCommand.Parameters["@item1"].Value=TextBox1.Text; myCommand.Parameters.Add(new SqlParameter("@item2",SqlDbType.NChar,40));myCommand.Parameters["@item2"].Value=TextBox2.Text; myCommand.Parameters.Add(new SqlParameter("@item3",SqlDbType.NChar,40));myCommand.Parameters["@item3"].Value=TextBox3.Text; myCommand.Connection.Open();myConnection.Close();}catch{Response.Write("<script language=javascript>alert('该项目编号已经存在');</script>"); }} Response.Write("<script language=javascript>alert('项目添加成功!');</script>"); } } } private void Button2_Click(object sender, System.EventArgs e) { TextBox1.Text=""; TextBox2.Text=""; TextBox3.Text=""; TextBox4.Text=""; }//因为你前面已经判断过"...为空之类的",在try{ ...}catch{}里面的异常就只//有"项目编号重复了"这一个了.//只要遇到异常它就不会添加记录了,只好重输!//另外把添加"项目编号"这一句写到最前面.//试一下,行不? 对不起,上面错了一点:"项目编号"应该是TextBox2.Text,我把它搞成TextBox4.Text了. 还是有一个办法解决你这个问题的。就是利用数据库报错,首先需要你做一个表,这个表的主建就是项目编号。(只有单一主建)。如果应用比较复杂可以让这个表仅存项目编号,和该编号的一些辅助说明,比如名称等等。然后在操作的时候直接向此表插入项目编号:逻辑实例程序如下:try{ 运行insert into table set 项目编号 values 录入值;}catch(Exception e){ Txt显示.Text="编号为" + 录入值的 +"的项目已经存在请重新录入"}就可以了其实你这个东西挺象个性汽车拍照的申请程序。我想当时交通局应当也面临者个性拍照不能重复而且要手工录入的情况。 try{}catch{}is the best 所谓接口就是了一个接口对象实现了操作多个不同类的方法么 二叉树遍历,树形结构,请高手相助啊.. C#中文件读写为什么要用到UTF8Encoding 什么意思啊 安装vs2005问题 关于窗体中传参的问题? C# 调用 API调用成功但是结果不对,请高手指教 水晶报表问题,请教! 【求助】关于:Clipboard.GetDataObject() 为空问题,求大神帮忙!!! 有木有写佳力图系列串口通讯的同学 TheAres(班门斧)请进! 如何删除已经查找到的行??? 在哪找到mdiparent属性
如果没有返回值,则没有该ID;
:)
select count(*) from table where Id = 你要判断的Id,
返回值>0提示用户重新输入该字段的值.
{
...提交;
}
catch()
{
..."已存在,请重新输入!"
}
你是用ACCESS的吧?
{
if (TextBox1.Text=="")
{
Response.Write("<script language=javascript>alert('项目名称不能为空!');</script>");
}
else if (TextBox2.Text=="")
{
Response.Write("<script language=javascript>alert('项目编号不能为空!');</script>");
}
else if (TextBox3.Text=="")
{
Response.Write("<script language=javascript>alert('起止时间不能为空!');</script>");
}
else if (TextBox4.Text=="")
{
Response.Write("<script language=javascript>alert('项目版本不能为空!');</script>");
}
else
{
应该在此处判断item2的字段是否重复。Response.Write("<script language=javascript>alert('该项目编号已经存在');</script>");
}
SqlConnection myConnection =new SqlConnection("server=(local);database=testinfo;uid=sa;pwd=");
String insertCmd = "insert into pro_info (pro_name, proid, pro_date, version) values (@item1,@item2,@item3,@item4)";
SqlCommand myCommand = new SqlCommand(insertCmd, myConnection);
myCommand.Parameters.Add(new SqlParameter("@item1",SqlDbType.NChar,40));
myCommand.Parameters["@item1"].Value=TextBox1.Text;
myCommand.Parameters.Add(new SqlParameter("@item2",SqlDbType.NChar,40));
myCommand.Parameters["@item2"].Value=TextBox2.Text;
myCommand.Parameters.Add(new SqlParameter("@item3",SqlDbType.NChar,40));
myCommand.Parameters["@item3"].Value=TextBox3.Text;
myCommand.Parameters.Add(new SqlParameter("@item4",SqlDbType.NChar,40));
myCommand.Parameters["@item4"].Value=TextBox4.Text;myCommand.Connection.Open();
myConnection.Close();
Response.Write("<script language=javascript>alert('项目添加成功!');</script>");
}
}
}
private void Button2_Click(object sender, System.EventArgs e)
{
TextBox1.Text="";
TextBox2.Text="";
TextBox3.Text="";
TextBox4.Text="";
}
判断项目编号重复的条件是什么即是本问题的关键!谢谢诸位支持!
//就是item2呀;如果有返回值就表示有该item2;
如果没有返回值,则没有该item2;
:)
首先:
select max(项目编号) from table然后在将结果+1就可以了!那个项目编号不让填入。TextBox2.Enabled=false;
private void Button1_Click(object sender, System.EventArgs e)
{
if (TextBox1.Text=="")
{
Response.Write("<script language=javascript>alert('项目名称不能为空!');</script>");
}
else if (TextBox2.Text=="")
{
Response.Write("<script language=javascript>alert('项目编号不能为空!');</script>");
}
else if (TextBox3.Text=="")
{
Response.Write("<script language=javascript>alert('起止时间不能为空!');</script>");
}
else if (TextBox4.Text=="")
{
Response.Write("<script language=javascript>alert('项目版本不能为空!');</script>");
}
else
{
//应该在此处判断item2的字段是否重复。
try
{
SqlConnection myConnection =new SqlConnection("server=(local);database=testinfo;uid=sa;pwd=");
String insertCmd = "insert into pro_info (pro_name, proid, pro_date, version) values (@item1,@item2,@item3,@item4)";
SqlCommand myCommand = new SqlCommand(insertCmd, myConnection);
//注意这里
myCommand.Parameters.Add(new SqlParameter("@item4",SqlDbType.NChar,40));
myCommand.Parameters["@item4"].Value=TextBox4.Text;//-----
myCommand.Parameters.Add(new SqlParameter("@item1",SqlDbType.NChar,40));
myCommand.Parameters["@item1"].Value=TextBox1.Text;
myCommand.Parameters.Add(new SqlParameter("@item2",SqlDbType.NChar,40));
myCommand.Parameters["@item2"].Value=TextBox2.Text;
myCommand.Parameters.Add(new SqlParameter("@item3",SqlDbType.NChar,40));
myCommand.Parameters["@item3"].Value=TextBox3.Text;
myCommand.Connection.Open();
myConnection.Close();
}
catch{Response.Write("<script language=javascript>alert('该项目编号已经存在');</script>");
}
}
Response.Write("<script language=javascript>alert('项目添加成功!');</script>");
}
}
}
private void Button2_Click(object sender, System.EventArgs e)
{
TextBox1.Text="";
TextBox2.Text="";
TextBox3.Text="";
TextBox4.Text="";
}//因为你前面已经判断过"...为空之类的",在try{ ...}catch{}里面的异常就只
//有"项目编号重复了"这一个了.
//只要遇到异常它就不会添加记录了,只好重输!
//另外把添加"项目编号"这一句写到最前面.//试一下,行不?
就是利用数据库报错,
首先需要你做一个表,这个表的主建就是项目编号。(只有单一主建)。如果应用比较复杂可以让这个表仅存项目编号,和该编号的一些辅助说明,比如名称等等。
然后在操作的时候直接向此表插入项目编号:逻辑实例程序如下:try
{
运行insert into table set 项目编号 values 录入值;
}
catch(Exception e)
{
Txt显示.Text="编号为" + 录入值的 +"的项目已经存在请重新录入"
}就可以了其实你这个东西挺象个性汽车拍照的申请程序。我想当时交通局应当也面临者个性拍照不能重复而且要手工录入的情况。
{
}catch
{
}
is the best