NasimBamdad
یک شنبه 16 مرداد 1390, 16:46 عصر
یکی از دوستان همین سایت ( متاسفانه اسمشان را فراموش کردم ) زحمت کشیدند و کد مفیدی در مورد INSERT , Update , Delete در DGV قرار دادند
البته دیتابیس oleDB بود که به SQL تبدیلش کردم ،
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace NoorAutomation
{
public partial class dgw : Form
{
//You should declare object variables as a class field.
private DataTable dataTable1 = new DataTable();
private SqlConnection SQLCNN1 = new SqlConnection();
private SqlDataAdapter SQLDA1 = new SqlDataAdapter();
public dgw()
{
InitializeComponent();
this.SQLCNN1.ConnectionString = (@"Data Source=.\SQLEXPRESS;initial catalog=NoorAutomation;integrated security=true");
this.SQLDA1.SelectCommand = new SqlCommand("SELECT ID, Field1, Field2 FROM Table1", this.SQLCNN1);
this.SQLCNN1.Open();
this.SQLDA1.Fill(this.dataTable1);
this.dataGridView1.DataSource = dataTable1;
//Initialize UPDATE Command.
this.SQLDA1.UpdateCommand = new SqlCommand("UPDATE Table1 SET Field1 = @field1, Field2 = @field2 WHERE ID = @id", this.SQLCNN1);
this.SQLDA1.UpdateCommand.Parameters.AddWithValue("@field1", typeof(string)).SourceColumn = "Field1";
this.SQLDA1.UpdateCommand.Parameters.AddWithValue("@field2", typeof(string)).SourceColumn = "Field2";
this.SQLDA1.UpdateCommand.Parameters.AddWithValue("@id", typeof(int)).SourceColumn = "ID";
//Initialize INSERT Command.
this.SQLDA1.InsertCommand = new SqlCommand("INSERT INTO Table1 (Field1, Field2) VALUES (@field1, @field2)", this.SQLCNN1);
this.SQLDA1.InsertCommand.Parameters.AddWithValue("@field1", typeof(string)).SourceColumn = "Field1";
this.SQLDA1.InsertCommand.Parameters.AddWithValue("@field2", typeof(string)).SourceColumn = "Field2";
//Initialize DELETE Command.
this.SQLDA1.DeleteCommand = new SqlCommand("DELETE FROM Table1 WHERE ID = @id", this.SQLCNN1);
this.SQLDA1.DeleteCommand.Parameters.AddWithValue("@id", typeof(int)).SourceColumn = "ID";
this.SQLCNN1.Close();
}
private void dgw_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'noorAutomationDataSet14.view_table' table. You can move, or remove it, as needed.
this.view_tableTableAdapter.Fill(this.noorAutomati onDataSet14.view_table);
// TODO: This line of code loads data into the 'noorAutomationDataSet14.Table1' table. You can move, or remove it, as needed.
this.table1TableAdapter.Fill(this.noorAutomationDa taSet14.Table1);
// TODO: This line of code loads data into the 'noorAutomationDataSet13.tempz' table. You can move, or remove it, as needed.
this.tempzTableAdapter.Fill(this.noorAutomationDat aSet13.tempz);
}
private void button1_Click(object sender, EventArgs e)
{
this.SQLDA1.Update(dataTable1);
}
}
}
درست هم کار می کنه ، اما سوال من این هست که :
1- در اینجا عملیات Insert , Update , Delete در یک جدول اعمال میشه ، اگه ما کوری داشته باشیم که چند تا جدول رو با هم دیگه INNER JOIN کرده باشه ، تکلیف چیه ؟
قبلا یک کدی رو دیدم که وقتی یک ROW رو انتخاب می کردی و اون کد اجرا می شد ، ROW انتخاب شده پاک می شد
همچین چیزی بود
dataGridView1.SelectedRows.Remove
دوستان عزیز ممنون میشوم کمک کنید
البته دیتابیس oleDB بود که به SQL تبدیلش کردم ،
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace NoorAutomation
{
public partial class dgw : Form
{
//You should declare object variables as a class field.
private DataTable dataTable1 = new DataTable();
private SqlConnection SQLCNN1 = new SqlConnection();
private SqlDataAdapter SQLDA1 = new SqlDataAdapter();
public dgw()
{
InitializeComponent();
this.SQLCNN1.ConnectionString = (@"Data Source=.\SQLEXPRESS;initial catalog=NoorAutomation;integrated security=true");
this.SQLDA1.SelectCommand = new SqlCommand("SELECT ID, Field1, Field2 FROM Table1", this.SQLCNN1);
this.SQLCNN1.Open();
this.SQLDA1.Fill(this.dataTable1);
this.dataGridView1.DataSource = dataTable1;
//Initialize UPDATE Command.
this.SQLDA1.UpdateCommand = new SqlCommand("UPDATE Table1 SET Field1 = @field1, Field2 = @field2 WHERE ID = @id", this.SQLCNN1);
this.SQLDA1.UpdateCommand.Parameters.AddWithValue("@field1", typeof(string)).SourceColumn = "Field1";
this.SQLDA1.UpdateCommand.Parameters.AddWithValue("@field2", typeof(string)).SourceColumn = "Field2";
this.SQLDA1.UpdateCommand.Parameters.AddWithValue("@id", typeof(int)).SourceColumn = "ID";
//Initialize INSERT Command.
this.SQLDA1.InsertCommand = new SqlCommand("INSERT INTO Table1 (Field1, Field2) VALUES (@field1, @field2)", this.SQLCNN1);
this.SQLDA1.InsertCommand.Parameters.AddWithValue("@field1", typeof(string)).SourceColumn = "Field1";
this.SQLDA1.InsertCommand.Parameters.AddWithValue("@field2", typeof(string)).SourceColumn = "Field2";
//Initialize DELETE Command.
this.SQLDA1.DeleteCommand = new SqlCommand("DELETE FROM Table1 WHERE ID = @id", this.SQLCNN1);
this.SQLDA1.DeleteCommand.Parameters.AddWithValue("@id", typeof(int)).SourceColumn = "ID";
this.SQLCNN1.Close();
}
private void dgw_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'noorAutomationDataSet14.view_table' table. You can move, or remove it, as needed.
this.view_tableTableAdapter.Fill(this.noorAutomati onDataSet14.view_table);
// TODO: This line of code loads data into the 'noorAutomationDataSet14.Table1' table. You can move, or remove it, as needed.
this.table1TableAdapter.Fill(this.noorAutomationDa taSet14.Table1);
// TODO: This line of code loads data into the 'noorAutomationDataSet13.tempz' table. You can move, or remove it, as needed.
this.tempzTableAdapter.Fill(this.noorAutomationDat aSet13.tempz);
}
private void button1_Click(object sender, EventArgs e)
{
this.SQLDA1.Update(dataTable1);
}
}
}
درست هم کار می کنه ، اما سوال من این هست که :
1- در اینجا عملیات Insert , Update , Delete در یک جدول اعمال میشه ، اگه ما کوری داشته باشیم که چند تا جدول رو با هم دیگه INNER JOIN کرده باشه ، تکلیف چیه ؟
قبلا یک کدی رو دیدم که وقتی یک ROW رو انتخاب می کردی و اون کد اجرا می شد ، ROW انتخاب شده پاک می شد
همچین چیزی بود
dataGridView1.SelectedRows.Remove
دوستان عزیز ممنون میشوم کمک کنید