我现在要向一个表录入数据,表中有一字段num是不可以重复的,我用了一个for循环已经解决,可是表中有另一字段name它的只有两种录入值(A或B),现在我要通过name这个字段来判断num是否重复,也就是录入A时,A的num不重复;录入B时,B的num不重复,我想应该是通过A或B过滤一下吧,可是不知道怎么做,请各位高手帮忙,下边是我的for循环,该如何改啊?谢谢
int i;
sqlDataAdapter1.SelectCommand = new System.Data.SqlClient.SqlCommand ();
sqlDataAdapter1.SelectCommand.Connection = SqlConnection1;
sqlDataAdapter1.SelectCommand.CommandText = "SELECT num FROM 表名";
sqlDataAdapter1.Fill(dataset11, "表名");
for (i = 0; i < dataset11.表名.Rows.Count; i++)
{
if (num_txt.Text.CompareTo(dataset11.表名.Rows[i].ItemArray.GetValue(0))==0)
{
num_txt.Text="原则代码重复";
return;
}
}
int i;
sqlDataAdapter1.SelectCommand = new System.Data.SqlClient.SqlCommand ();
sqlDataAdapter1.SelectCommand.Connection = SqlConnection1;
sqlDataAdapter1.SelectCommand.CommandText = "SELECT num FROM 表名";
sqlDataAdapter1.Fill(dataset11, "表名");
for (i = 0; i < dataset11.表名.Rows.Count; i++)
{
if (num_txt.Text.CompareTo(dataset11.表名.Rows[i].ItemArray.GetValue(0))==0)
{
num_txt.Text="原则代码重复";
return;
}
}
不重复的东西可以使用Unique约束啊,至于A 、B这样的我想可以使用一位的数据才存贮要么是0要么是1
数据库现在只能是这样,因为数据不是我做的
int i;
sqlDataAdapter1.SelectCommand = new System.Data.SqlClient.SqlCommand ();
sqlDataAdapter1.SelectCommand.Connection = SqlConnection1;
'这一句改一下
sqlDataAdapter1.SelectCommand.CommandText = "SELECT num FROM 表名 and name='" & name.text & "'";
sqlDataAdapter1.Fill(dataset11, "表名");
for (i = 0; i < dataset11.表名.Rows.Count; i++)
{
if (num_txt.Text.CompareTo(dataset11.表名.Rows[i].ItemArray.GetValue(0))==0)
{
num_txt.Text="原则代码重复";
return;
}
}
你要这样查的话是不是name是A或B时,能有相同的num啊?
可是如果只是一个num作主键的话,在一张表里肯定不行啊,会出错的。如果是num和name联合作主键的话,就像上面的做法
sqlDataAdapter1.SelectCommand.CommandText = "SELECT num FROM 表名 WHERE name= 'A'";
sqlDataAdapter1.Fill(dataset11, "表名A");
sqlDataAdapter1.SelectCommand.CommandText = "SELECT num FROM 表名 WHERE name= 'B'";
sqlDataAdapter1.Fill(dataset11, "表名B");
for (i = 0; i < dataset11.表名.Rows.Count; i++)
{
if (name.Text == "A" && num_txt.Text.CompareTo(dataset11.表名A.Rows[i].ItemArray.GetValue(0))==0)
{
num_txt.Text="原则代码重复";
return;
}
else if (name.Text == "B" && num_txt.Text.CompareTo(dataset11.表名B.Rows[i].ItemArray.GetValue(0))==0)
{
num_txt.Text="XXXX";
return;
}
else
{
num_txt.Text="XXXX";
return;
}
}
是不是这样啊?