veniz2008
جمعه 15 مرداد 1389, 16:08 عصر
سلام ،من یک مشکل با وبم دارم ،مشکلم اینه:من یک جدول درس دارم که برای ثبت درس جدید از اون استفاده میکنم ولی قبل از ثبت درس اول چک میکنم که آیا اون درس ثبت شده یا نه،اگر ثبت شده بود پیغام "درس وجود داره" رو بده و اگر هم جدید بود پیغام "درس جدید میباشد" رو صادر بکنه،تابعی که اینکار رو انجام میده مشکلی نداره و بخوبی کار میکنه،مشکل از اینجا شروع میشه که وقتی بجای پیغام دوم یعنی "درس جدید میباشد" از کد اضافه کردن درس استفاده میکنم و یک درس تکراری رو وارد میکنم،شرط اولم از کار میفته(به عبارت دقیقتر فقط اولین درس قدیمی رو میشناسه و بقیه درسهای جدولم رو شناسایی نمیکنه )و شرط دوم(اضافه کردن درس) میخواد اجرا بشه که با خطای sql با محتوای زیر روبرو میشم:
***message sql eror : Violation of PRIMARY KEY constraint 'PK_Dars'. Cannot insert duplicate key in object 'Dars'.
The statement has been terminated
من کد برنامه رو میذارم،محبت کنید کد رو تصحیح کنید:
public void sqlreader1(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Data Source = .\\Wincc;Initial Catalog=US_DB;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SELECT * FROM Dars";
SqlDataAdapter Adapter = new SqlDataAdapter();
Adapter.SelectCommand = new SqlCommand();
Adapter.SelectCommand.Connection = conn;
Adapter.SelectCommand.CommandText = "SELECT * FROM Dars";
DataTable dt = new DataTable();
Adapter.Fill(dt);
string s1;
foreach (DataRow dr in dt.Rows)
{
s1 = (dr["Code"].ToString().TrimEnd());
if (TextBox1.Text == s1)
{
Label12.Text = "مشخصه وجود دارد";
break;
}
else
Label12.Text = "مشخصه جدید می باشد";
}
}
بجای else از کد زیر برای اضافه کردن درس جدید استفاده میکنم که مشکل مطرح شده پیش میاد:
strcon = ("Data Source = .\\wincc;Initial Catalog=US_DB;Integrated Security=True");
strsql = "SELECT * From Dars";
conn = new SqlConnection(strcon);
conn.Open();
Adapter = new SqlDataAdapter(strsql, conn);
Adapter.Fill(ds, "Dars");
newRow = ds.Tables["Student"].NewRow();
newRow["Code"] = TextBox1.Text;
newRow["Money"] = TextBox11.Text;
ds.Tables["Dars"].Rows.Add(newRow);
cb = new SqlCommandBuilder(Adapter);
Adapter.InsertCommand = cb.GetInsertCommand();
Adapter.Update(ds, "Dars");
con.Close();
***message sql eror : Violation of PRIMARY KEY constraint 'PK_Dars'. Cannot insert duplicate key in object 'Dars'.
The statement has been terminated
من کد برنامه رو میذارم،محبت کنید کد رو تصحیح کنید:
public void sqlreader1(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Data Source = .\\Wincc;Initial Catalog=US_DB;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SELECT * FROM Dars";
SqlDataAdapter Adapter = new SqlDataAdapter();
Adapter.SelectCommand = new SqlCommand();
Adapter.SelectCommand.Connection = conn;
Adapter.SelectCommand.CommandText = "SELECT * FROM Dars";
DataTable dt = new DataTable();
Adapter.Fill(dt);
string s1;
foreach (DataRow dr in dt.Rows)
{
s1 = (dr["Code"].ToString().TrimEnd());
if (TextBox1.Text == s1)
{
Label12.Text = "مشخصه وجود دارد";
break;
}
else
Label12.Text = "مشخصه جدید می باشد";
}
}
بجای else از کد زیر برای اضافه کردن درس جدید استفاده میکنم که مشکل مطرح شده پیش میاد:
strcon = ("Data Source = .\\wincc;Initial Catalog=US_DB;Integrated Security=True");
strsql = "SELECT * From Dars";
conn = new SqlConnection(strcon);
conn.Open();
Adapter = new SqlDataAdapter(strsql, conn);
Adapter.Fill(ds, "Dars");
newRow = ds.Tables["Student"].NewRow();
newRow["Code"] = TextBox1.Text;
newRow["Money"] = TextBox11.Text;
ds.Tables["Dars"].Rows.Add(newRow);
cb = new SqlCommandBuilder(Adapter);
Adapter.InsertCommand = cb.GetInsertCommand();
Adapter.Update(ds, "Dars");
con.Close();