PDA

View Full Version : سوال: عدم درج داده های تکراری در بانک اطلاعاتی



mohsen.nsb44
سه شنبه 28 شهریور 1391, 15:30 عصر
من واسه مقابله با این کار، کارهای زیر رو انجام دادم اما از اونجایی که داده ها فارسی هستند به مشکل برخوردم و درست کار نمیکنند

کد زیر رو نوشتم بری یک جستجو در بانک


SqlConnection con1 = new SqlConnection();
con1.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["connectionstring"].ConnectionString;
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = con1;
cmd1.CommandText = "select brand from tbName";

DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd1;
da.Fill(dt);


حال کد زیر رو نوشتم برای یکی بودن یا نبودن و عملیات مورد نظر




foreach (DataRow row in dt.Rows)
{
if (TextBox1.Text.Trim() == row[0].ToString())
{
//lblM.Visible = true;
//break;
ScriptManager.RegisterStartupScript(btnAdd, this.GetType(), "alert", "alert('اخطار : این محصول قبلا ثبت شده ');", true);

}
else if (TextBox1.Text.Trim() != row[0].ToString())
{
if (TextBox1.Text != "")
{
FileUpload1.SaveAs(Server.MapPath("~/img/" + FileUpload1.FileName));
SqlDataSource1.InsertCommand = "insert into tbName(brand,pic)values(N'" + TextBox1.Text + "',N'" + FileUpload1.FileName + "')";
SqlDataSource1.Insert();

GridView1.DataBind();
ScriptManager.RegisterStartupScript(btnAdd, this.GetType(), "alert", "alert(' اطلاعات شما با موفقیعت ثبت شد ');", true);
TextBox1.Text = "";
}
else
{
ScriptManager.RegisterStartupScript(btnAdd, this.GetType(), "alert", "alert('اخطار : برای ثبت برند حتما باید نام ان را در کادر موجود وارد نمایید ');", true);

}
}

}



تو بعضی از داده ها اخطار میده که قبلا ثبت شده اما باز ثبت میکنه
تو بعضی از داده های دیگه بدون اینکه اخطار بده با اینکه تکراری وارد میشه میگه ثبت شد
خب میخوام بدونم مشکل کار کجاست؟ راه حل بهتر چیه؟

h_r_sh
سه شنبه 28 شهریور 1391, 16:00 عصر
SqlConnection con = new SqlConnection(this.constr);
SqlCommand cmd = new SqlCommand("select * from Product where (Brand = @a)", con);
SqlParameter _ap = new SqlParameter("@a", textBox1.Text);
cmd.Parameters.Add(_ap);
if (con.State != ConnectionState.Open)
con.Open();
SqlDataReader r = cmd.ExecuteReader();
if (r.HasRows)
{
ScriptManager.RegisterStartupScript(btnAdd, this.GetType(), "alert", "alert('اخطار : این محصول قبلا ثبت شده ');", true);
}
else
{
r.Close();
cmd = new SqlCommand("insert into Product (Brand,BName) values(@a,@b)", con);
SqlParameter ap = new SqlParameter("@a", textBox1.Text);
SqlParameter bp = new SqlParameter("@b", textBox2.Text);
cmd.Parameters.Add(ap);
cmd.Parameters.Add(bp);
if (con.State != ConnectionState.Open)
con.Open();
cmd.ExecuteNonQuery();
}
// code to refresh