peymanjon
چهارشنبه 15 اردیبهشت 1389, 20:33 عصر
سلام.
من از این کدها در load form استفاده میکنم تا وقتی اطلاعاتی وارد شد در این دیتا گریدویو بعد از درج ،اطلاعات جدید را نشان دهد . وقتی برنامه برای بار اول load میشود اطلاعات بصورت صحیح نشان داده میشود ولی بعد از insert کردن یک اطلاعات جدید، توی دیتا گرید ویو اطلاعات جدید به همراه اطلاعات قدیم بعلاوه اطلاعات قدیم که بصورت تکراری میباشد ، در دیتا گرید ویو نشان داده میشود . وقتی دیتابیس را نگاه میکنم همه چیز درست میباشد و فقط اطلاعات جدید ثبت شده است.
من کدهای form load (نشان دادن اطلاعات در دیتا گریدویو)که فکر میکنم مشکل در همینجا باشه و کد قسمت insert را میذارم تا دوستان کمکم کنن.
ممنون
formload
SqlConnection objconn = new SqlConnection("Data Source=.;Initial Catalog=RfidDB;Integrated Security=True");
dataadapter.SelectCommand = new SqlCommand();
dataadapter.SelectCommand.Connection = objconn;
dataadapter.SelectCommand.CommandText = "SELECT TagId,[First Name],LastName,Title,TitleOfCourtesy,Photo,Country,City ,Address,BirthDate,HireDate,Region,Postalcode,Home phone,EmployeeID FROM RFIDdb";
dataadapter.FillSchema(objset, SchemaType.Source, "RFIDdb1");
dataadapter.Fill(objset, "RFIDdb1");
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = objset;
dataGridView1.DataMember = "RFIDdb1";
dataGridView1.Columns[0].HeaderText = "کد";
dataGridView1.Columns[1].HeaderText = "نام ";
dataGridView1.Columns[2].HeaderText = "نام خانوادگی";
dataGridView1.Columns[3].HeaderText = "سمت";
dataGridView1.Columns[4].HeaderText = "اداره مربوط";
dataGridView1.Columns[5].HeaderText = "عکس";
dataGridView1.Columns[6].HeaderText = "کشور";
dataGridView1.Columns[7].HeaderText = "شهر";
dataGridView1.Columns[8].HeaderText = "آدرس";
dataGridView1.Columns[9].HeaderText = "تاریخ تولد";
dataGridView1.Columns[10].HeaderText = "تاریخ استخدام";
dataGridView1.Columns[11].HeaderText = "مذهب";
dataGridView1.Columns[12].HeaderText = "کدپستی";
dataGridView1.Columns[13].HeaderText = "شماره تلفن";
dataGridView1.Columns[14].HeaderText = " ";
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView1.MultiSelect = false;
dataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
insert
dataadapter.InsertCommand = new SqlCommand();
dataadapter.InsertCommand.Connection = objconn;
dataadapter.InsertCommand.CommandText = "INSERT INTO RFIDdb" + "(LastName,[First Name],Title,TitleOfCourtesy,BirthDate,HireDate,Address, City,Region,Postalcode,Country,Homephone,Notes,Tag Id,Photo)" +
"VALUES(@LastName,@FirstName,@Title,@TitleOfCourtes y,@BirthDate,@HireDate,@Address,@City,@Region,@Pos talcode,@Country,@Homephone,@Notes,@TagId,@Photo)";
dataadapter.InsertCommand.Parameters.AddWithValue("@LastName", textBox3.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@FirstName", textBox2.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@Title", textBox4.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@TitleOfCourtesy", textBox5.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@BirthDate", dtF);
dataadapter.InsertCommand.Parameters.AddWithValue("@HireDate", dtF1);
dataadapter.InsertCommand.Parameters.AddWithValue("@Address", textBox14.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@City", textBox11.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@Region", textBox15.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@Postalcode",textBox17.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@Country", textBox14.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@Homephone", textBox13.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@Notes", textBox18.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@TagId", textBox19.Text);
System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open);
byte[] imagecontent = new byte[fs.Length];
fs.Read(imagecontent, 0, (int)fs.Length);
SqlParameter ping = new SqlParameter("@Photo", imagecontent);
ping.SqlDbType = SqlDbType.Image;
dataadapter.InsertCommand.Parameters.Add(ping);
objconn.Open();
dataadapter.InsertCommand.ExecuteNonQuery();
objconn.Close();
Form1_Load(sender, e);
MessageBox.Show("اطلاعات با موفقیت وارد شد");
من از این کدها در load form استفاده میکنم تا وقتی اطلاعاتی وارد شد در این دیتا گریدویو بعد از درج ،اطلاعات جدید را نشان دهد . وقتی برنامه برای بار اول load میشود اطلاعات بصورت صحیح نشان داده میشود ولی بعد از insert کردن یک اطلاعات جدید، توی دیتا گرید ویو اطلاعات جدید به همراه اطلاعات قدیم بعلاوه اطلاعات قدیم که بصورت تکراری میباشد ، در دیتا گرید ویو نشان داده میشود . وقتی دیتابیس را نگاه میکنم همه چیز درست میباشد و فقط اطلاعات جدید ثبت شده است.
من کدهای form load (نشان دادن اطلاعات در دیتا گریدویو)که فکر میکنم مشکل در همینجا باشه و کد قسمت insert را میذارم تا دوستان کمکم کنن.
ممنون
formload
SqlConnection objconn = new SqlConnection("Data Source=.;Initial Catalog=RfidDB;Integrated Security=True");
dataadapter.SelectCommand = new SqlCommand();
dataadapter.SelectCommand.Connection = objconn;
dataadapter.SelectCommand.CommandText = "SELECT TagId,[First Name],LastName,Title,TitleOfCourtesy,Photo,Country,City ,Address,BirthDate,HireDate,Region,Postalcode,Home phone,EmployeeID FROM RFIDdb";
dataadapter.FillSchema(objset, SchemaType.Source, "RFIDdb1");
dataadapter.Fill(objset, "RFIDdb1");
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = objset;
dataGridView1.DataMember = "RFIDdb1";
dataGridView1.Columns[0].HeaderText = "کد";
dataGridView1.Columns[1].HeaderText = "نام ";
dataGridView1.Columns[2].HeaderText = "نام خانوادگی";
dataGridView1.Columns[3].HeaderText = "سمت";
dataGridView1.Columns[4].HeaderText = "اداره مربوط";
dataGridView1.Columns[5].HeaderText = "عکس";
dataGridView1.Columns[6].HeaderText = "کشور";
dataGridView1.Columns[7].HeaderText = "شهر";
dataGridView1.Columns[8].HeaderText = "آدرس";
dataGridView1.Columns[9].HeaderText = "تاریخ تولد";
dataGridView1.Columns[10].HeaderText = "تاریخ استخدام";
dataGridView1.Columns[11].HeaderText = "مذهب";
dataGridView1.Columns[12].HeaderText = "کدپستی";
dataGridView1.Columns[13].HeaderText = "شماره تلفن";
dataGridView1.Columns[14].HeaderText = " ";
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView1.MultiSelect = false;
dataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
insert
dataadapter.InsertCommand = new SqlCommand();
dataadapter.InsertCommand.Connection = objconn;
dataadapter.InsertCommand.CommandText = "INSERT INTO RFIDdb" + "(LastName,[First Name],Title,TitleOfCourtesy,BirthDate,HireDate,Address, City,Region,Postalcode,Country,Homephone,Notes,Tag Id,Photo)" +
"VALUES(@LastName,@FirstName,@Title,@TitleOfCourtes y,@BirthDate,@HireDate,@Address,@City,@Region,@Pos talcode,@Country,@Homephone,@Notes,@TagId,@Photo)";
dataadapter.InsertCommand.Parameters.AddWithValue("@LastName", textBox3.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@FirstName", textBox2.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@Title", textBox4.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@TitleOfCourtesy", textBox5.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@BirthDate", dtF);
dataadapter.InsertCommand.Parameters.AddWithValue("@HireDate", dtF1);
dataadapter.InsertCommand.Parameters.AddWithValue("@Address", textBox14.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@City", textBox11.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@Region", textBox15.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@Postalcode",textBox17.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@Country", textBox14.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@Homephone", textBox13.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@Notes", textBox18.Text);
dataadapter.InsertCommand.Parameters.AddWithValue("@TagId", textBox19.Text);
System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open);
byte[] imagecontent = new byte[fs.Length];
fs.Read(imagecontent, 0, (int)fs.Length);
SqlParameter ping = new SqlParameter("@Photo", imagecontent);
ping.SqlDbType = SqlDbType.Image;
dataadapter.InsertCommand.Parameters.Add(ping);
objconn.Open();
dataadapter.InsertCommand.ExecuteNonQuery();
objconn.Close();
Form1_Load(sender, e);
MessageBox.Show("اطلاعات با موفقیت وارد شد");