如何在DataGrid中进行添加、删除和修改操作
2006-03-29 14:14
1041 查看
见于好多人在CSDN上问如何在DataGrid中进行添加、删除和修改操作,我最近作了如下一个例子。
首先,例子所用的数据库是SQL Server2000,数据库表格如下:
程序的代码如下:
[align=left]//------------------------Datagrid Demo------------------------------------[/align]
[align=left]//-------------------------------------------------------------------------[/align]
[align=left]//---File:frmDataGridDemo.cs[/align]
[align=left]//---Description:The main form file to operate datagrid [/align]
[align=left]//---Author:Knight[/align]
[align=left]//---Date:Mar.17, 2006[/align]
[align=left]//-------------------------------------------------------------------------[/align]
[align=left]//----------------------{ Datagrid Demo }----------------------------------[/align]
using System;<
4000
/div>
[align=left]using System.Drawing;[/align]
[align=left]using System.Collections;[/align]
[align=left]using System.ComponentModel;[/align]
[align=left]using System.Windows.Forms;[/align]
[align=left]using System.Data;[/align]
[align=left]using System.Data.SqlClient;[/align]
[align=left] [/align]
[align=left]namespace CSDataGrid[/align]
[align=left]{[/align]
[align=left] ///<summary>[/align]
[align=left] /// Summary description for frmDataGridDemo.[/align]
[align=left] ///</summary>[/align]
[align=left] public class frmDataGridDemo : System.Windows.Forms.Form[/align]
[align=left] {[/align]
[align=left] private System.Windows.Forms.DataGrid dtgUserInfo;[/align]
[align=left] private System.Windows.Forms.Button btnUpdate;[/align]
[align=left] private System.Windows.Forms.Button btnExit;[/align]
[align=left] [/align]
[align=left] protected SqlConnection sqlConn = new SqlConnection();[/align]
[align=left] protected SqlDataAdapter sqlDAdapter = null;[/align]
[align=left] protected DataSet sqlRecordSet = null;[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] /// Required designer variable.[/align]
[align=left] ///</summary>[/align]
[align=left] private System.ComponentModel.Container components = null;[/align]
[align=left] [/align]
[align=left] public frmDataGridDemo()[/align]
[align=left] {[/align]
[align=left] //[/align]
[align=left] // Required for Windows Form Designer support[/align]
[align=left] //[/align]
[align=left] InitializeComponent();[/align]
[align=left] [/align]
[align=left] //[/align]
[align=left] // TODO: Add any constructor code after InitializeComponent call[/align]
[align=left] //[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] /// Clean up any resources being used.[/align]
[align=left] ///</summary>[/align]
[align=left] protected override void Dispose( bool disposing )[/align]
[align=left] {[/align]
[align=left] if( disposing )[/align]
[align=left] {[/align]
[align=left] if (components != null) [/align]
[align=left] {[/align]
[align=left] components.Dispose();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] base.Dispose( disposing );[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] #region Windows Form Designer generated code[/align]
[align=left] ///<summary>[/align]
[align=left] /// Required method for Designer support - do not modify[/align]
[align=left] /// the contents of this method with the code editor.[/align]
[align=left] ///</summary>[/align]
[align=left] private void InitializeComponent()[/align]
[align=left] {[/align]
[align=left] this.dtgUserInfo = new System.Windows.Forms.DataGrid();[/align]
[align=left] this.btnUpdate = new System.Windows.Forms.Button();[/align]
[align=left] this.btnExit = new System.Windows.Forms.Button();[/align]
[align=left] ((System.ComponentModel.ISupportInitialize)(this.dtgUserInfo)).BeginInit();[/align]
[align=left] this.SuspendLayout();[/align]
[align=left] // [/align]
[align=left] // dtgUserInfo[/align]
[align=left] // [/align]
[align=left] this.dtgUserInfo.DataMember = "";[/align]
[align=left] this.dtgUserInfo.HeaderForeColor = System.Drawing.SystemColors.ControlText;[/align]
[align=left] this.dtgUserInfo.Location = new System.Drawing.Point(8, 16);[/align]
[align=left] this.dtgUserInfo.Name = "dtgUserInfo";[/align]
[align=left] this.dtgUserInfo.Size = new System.Drawing.Size(528, 480);[/align]
[align=left] this.dtgUserInfo.TabIndex = 0;[/align]
[align=left] // [/align]
[align=left] // btnUpdate[/align]
[align=left] // [/align]
[align=left] this.btnUpdate.Location = new System.Drawing.Point(544, 16);[/align]
[align=left] this.btnUpdate.Name = "btnUpdate";[/align]
[align=left] this.btnUpdate.TabIndex = 1;[/align]
[align=left] this.btnUpdate.Text = "&Update";[/align]
[align=left] this.btnUpdate.Click += new System.EventHandler(this.btnUpdate_Click);[/align]
[align=left] // [/align]
[align=left] // btnExit[/align]
[align=left] // [/align]
[align=left] this.btnExit.Location = new System.Drawing.Point(544, 472);[/align]
[align=left] this.btnExit.Name = "btnExit";[/align]
[align=left] this.btnExit.TabIndex = 2;[/align]
[align=left] this.btnExit.Text = "E&xit";[/align]
[align=left] // [/align]
[align=left] // frmDataGridDemo[/align]
[align=left] // [/align]
[align=left] this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);[/align]
[align=left] this.ClientSize = new System.Drawing.Size(634, 511);[/align]
[align=left] this.Controls.Add(this.btnExit);[/align]
[align=left] this.Controls.Add(this.btnUpdate);[/align]
[align=left] this.Controls.Add(this.dtgUserInfo);[/align]
[align=left] this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;[/align]
[align=left] this.MaximizeBox = false;[/align]
[align=left] this.Name = "frmDataGridDemo";[/align]
[align=left] this.Text = "DataGrid Demo";[/align]
[align=left] this.Load += new System.EventHandler(this.frmDataGridDemo_Load);[/align]
[align=left] ((System.ComponentModel.ISupportInitialize)(this.dtgUserInfo)).EndInit();[/align]
[align=left] this.ResumeLayout(false);[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] #endregion[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
f8d8
/// The main entry point for the application.
[align=left] ///</summary>[/align]
[align=left] [STAThread][/align]
[align=left] static void Main() [/align]
[align=left] {[/align]
[align=left] Application.Run(new frmDataGridDemo());[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] private void frmDataGridDemo_Load(object sender, System.EventArgs e)[/align]
[align=left] {[/align]
[align=left] //Set connection string [/align]
[align=left] sqlConn.ConnectionString = yourDBConnectionString;[/align]
[align=left] [/align]
[align=left] //Connect to DB[/align]
[align=left] if( ConnectDB() )[/align]
[align=left] {[/align]
[align=left] //Bind data to datagrid[/align]
[align=left] BindData();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] private void AddDGStyle()[/align]
[align=left] {[/align]
[align=left] DataGridTableStyle ts1 = new DataGridTableStyle(); [/align]
[align=left] [/align]
[align=left] //specify the table from dataset (required step) [/align]
[align=left] ts1.MappingName = "EmployeeInfo"; [/align]
[align=left] PropertyDescriptorCollection pdc = this.BindingContext[/align]
[align=left] [sqlRecordSet, "EmployeeInfo"].GetItemProperties();[/align]
[align=left] [/align]
[align=left] DataGridColumnStyle TextCol = new DataGridTextBoxColumn( pdc["EmployeeID"], "i" );[/align]
[align=left] TextCol.MappingName = "EmployeeID"; [/align]
[align=left] TextCol.HeaderText = "EmployeeID"; [/align]
[align=left] TextCol.Width = 0; [/align]
[align=left] TextCol.ReadOnly = true;[/align]
[align=left] ts1.GridColumnStyles.Add(TextCol); [/align]
[align=left] [/align]
[align=left] TextCol = new DataGridTextBoxColumn(); [/align]
[align=left] TextCol.MappingName = "EmployeeName"; [/align]
[align=left] TextCol.HeaderText = "Employee Name"; [/align]
[align=left] TextCol.Width = 100; [/align]
[align=left] ts1.GridColumnStyles.Add(TextCol); [/align]
[align=left] [/align]
[align=left] TextCol = new DataGridTextBoxColumn( pdc["Salary"], "i" );[/align]
[align=left] TextCol.MappingName = "Salary"; [/align]
[align=left] TextCol.HeaderText = "Salary"; [/align]
[align=left] TextCol.Width = 80; [/align]
[align=left] ts1.GridColumnStyles.Add(TextCol); [/align]
[align=left] [/align]
[align=left] TextCol = new DataGridTextBoxColumn(); [/align]
[align=left] TextCol.MappingName = "CellPhone"; [/align]
[align=left] TextCol.HeaderText = "Cell Phone"; [/align]
[align=left] TextCol.Width = 80; [/align]
[align=left] ts1.GridColumnStyles.Add(TextCol); [/align]
[align=left] [/align]
[align=left] TextCol = new DataGridTextBoxColumn(); [/align]
[align=left] TextCol.MappingName = "EmailAddress"; [/align]
[align=left] TextCol.HeaderText = "Email Address"; [/align]
[align=left] TextCol.Width = 100; [/align]
[align=left] ts1.GridColumnStyles.Add(TextCol); [/align]
[align=left] [/align]
[align=left] dtgUserInfo.TableStyles.Add(ts1);[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] private void SetDAdapterCommands()[/align]
[align=left] {[/align]
[align=left] string strQuery = "";[/align]
[align=left] SqlParameter sqlParm = null;[/align]
[align=left] // Create data adapter with select command[/align]
[align=left] strQuery = "SELECT EmployeeID, EmployeeName, Salary, CellPhone, EmailAddress "[/align]
[align=left] + " FROM EmployeeInfo";[/align]
[align=left] sqlDAdapter = new SqlDataAdapter( strQuery, sqlConn );[/align]
[align=left] [/align]
[align=left] //Set update command[/align]
[align=left] strQuery = "Update EmployeeInfo SET "[/align]
[align=left] + " EmployeeName = @EmployeeName, "[/align]
[align=left] + " Salary = @Salary, "[/align]
[align=left] + " CellPhone = @CellPhone, "[/align]
[align=left] + " EmailAddress = @EmailAddress "[/align]
[align=left] + " WHERE EmployeeID = @EmployeeID ";[/align]
[align=left] [/align]
[align=left] sqlDAdapter.UpdateCommand = new SqlCommand( strQuery, sqlConn );[/align]
[align=left] sqlDAdapter.UpdateCommand.Parameters.Add( "@EmployeeName", SqlDbType.VarChar,[/align]
[align=left] 20, "EmployeeName" );[/align]
[align=left] sqlParm = sqlDAdapter.UpdateCommand.Parameters.Add("@Salary", SqlDbType.Int);[/align]
[align=left] sqlParm.SourceColumn = "Salary";[/align]
[align=left] sqlParm.SourceVersion = DataRowVersion.Current;[/align]
[align=left] sqlDAdapter.UpdateCommand.Parameters.Add( "@CellPhone", SqlDbType.VarChar,[/align]
[align=left] 20, "CellPhone" );[/align]
[align=left] sqlDAdapter.UpdateCommand.Parameters.Add( "@EmailAddress", SqlDbType.VarChar,[/align]
[align=left] 20, "EmailAddress" );[/align]
[align=left] sqlParm = sqlDAdapter.UpdateCommand.Parameters.Add("@EmployeeID", SqlDbType.Int);[/align]
[align=left] sqlParm.SourceColumn = "EmployeeID";[/align]
[align=left] sqlParm.SourceVersion = DataRowVersion.Original;[/align]
[align=left] [/align]
[align=left] //Set insert command[/align]
[align=left] strQuery = "INSERT INTO EmployeeInfo ("[/align]
[align=left] + " EmployeeName, "[/align]
[align=left] + " Salary, "[/align]
[align=left] + " CellPhone, "[/align]
[align=left] + " EmailAddress) "[/align]
[align=left] + " VALUES ( "[/align]
[align=left] + " @EmployeeName, "[/align]
[align=left] + " @Salary, "[/align]
[align=left] + " @CellPhone, "[/align]
[align=left] + " @EmailAddress)";[/align]
[align=left] sqlDAdapter.InsertCommand = new SqlCommand( strQuery, sqlConn );[/align]
[align=left] sqlDAdapter.InsertCommand.Parameters.Add( "@EmployeeName", SqlDbType.VarChar,[/align]
[align=left] 20, "EmployeeName" );[/align]
[align=left] sqlParm = sqlDAdapter.InsertCommand.Parameters.Add("@Salary", SqlDbType.Int);[/align]
[align=left] sqlParm.SourceColumn = "Salary";[/align]
[align=left] sqlParm.SourceVersion = DataRowVersion.Current;[/align]
[align=left] sqlDAdapter.InsertCommand.Parameters.Add( "@CellPhone", SqlDbType.VarChar,[/align]
[align=left] 20, "CellPhone" );[/align]
[align=left] sqlDAdapter.InsertCommand.Parameters.Add( "@EmailAddress", SqlDbType.VarChar,[/align]
[align=left] 20, "EmailAddress" );[/align]
[align=left] [/align]
[align=left] strQuery = "DELETE FROM EmployeeInfo "[/align]
[align=left] + " WHERE EmployeeID = @EmployeeID ";[/align]
[align=left] sqlDAdapter.DeleteCommand = new SqlCommand( strQuery, sqlConn );[/align]
[align=left] sqlParm = sqlDAdapter.DeleteCommand.Parameters.Add("@EmployeeID", SqlDbType.Int);[/align]
[align=left] sqlParm.SourceColumn = "EmployeeID";[/align]
[align=left] sqlParm.SourceVersion = DataRowVersion.Original;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] private void BindData()[/align]
[align=left] {[/align]
[align=left] SetDAdapterCommands();[/align]
[align=left] [/align]
[align=left] //Fill dataset[/align]
[align=left] sqlRecordSet = new DataSet();[/align]
[align=left] sqlDAdapter.Fill( sqlRecordSet, "EmployeeInfo" );[/align]
[align=left] [/align]
[align=left] //Bind datagrid with dataset[/align]
[align=left] dtgUserInfo.SetDataBinding( sqlRecordSet, "EmployeeInfo");[/align]
[align=left] [/align]
[align=left] //Add datagrid style[/align]
[align=left] AddDGStyle();[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] /// Connect to DB[/align]
[align=left] ///</summary>[/align]
[align=left] ///<returns>If connected, return True; else return False</returns>[/align]
[align=left] private bool ConnectDB()[/align]
[align=left] {[/align]
[align=left] //Check current connection's state[/align]
[align=left] try[/align]
[align=left] {[/align]
[align=left] if( sqlConn.State == ConnectionState.Closed[/align]
[align=left] || sqlConn.State == ConnectionState.Broken )[/align]
[align=left] {[/align]
[align=left] //Connection is not available[/align]
[align=left] sqlConn.Close();[/align]
[align=left] }[/align]
[align=left] else[/align]
[align=left] //Connection is available[/align]
[align=left] return true;[/align]
[align=left] }[/align]
[align=left] catch{};[/align]
[align=left] [/align]
[align=left] //Re-connect[/align]
[align=left] try [/align]
[align=left] {[/align]
[align=left] sqlConn.Open();[/align]
[align=left] }[/align]
[align=left] catch(SqlException e) [/align]
[align=left] {[/align]
[align=left] //Sql's exception[/align]
[align=left] MessageBox.Show( e.Message );[/align]
[align=left] }[/align]
[align=left] catch(Exception e)[/align]
[align=left] {[/align]
[align=left] //Other exception[/align]
[align=left] MessageBox.Show( e.Message );[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] if( sqlConn.State == ConnectionState.Closed[/align]
[align=left] || sqlConn.State == ConnectionState.Broken )[/align]
[align=left] //Connection is not available[/align]
[align=left] return false;[/align]
[align=left] else[/align]
[align=left] //Connection is available[/align]
[align=left] return true;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] private void btnUpdate_Click(object sender, System.EventArgs e)[/align]
[align=left] {[/align]
[align=left] sqlDAdapter.Update( sqlRecordSet, "EmployeeInfo" );[/align]
[align=left] sqlRecordSet.Tables["EmployeeInfo"].Rows.Clear();[/align]
[align=left] sqlDAdapter.Fill( sqlRecordSet, "EmployeeInfo" );[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left]}[/align]
上面的代码有很多细节没有作处理,因此仅仅演示如何对DataGrid操作。
首先,例子所用的数据库是SQL Server2000,数据库表格如下:
[align=center]字段名[/align] | [align=center]类型[/align] | [align=center]备注[/align] |
EmployeeID | Int | 自增字段 |
EmployeeName | Varchar(20) | |
Salary | Int | |
CellPhone | Varchar(20) | |
EmailAddress | Varchar(20) | |
程序的代码如下:
[align=left]//------------------------Datagrid Demo------------------------------------[/align]
[align=left]//-------------------------------------------------------------------------[/align]
[align=left]//---File:frmDataGridDemo.cs[/align]
[align=left]//---Description:The main form file to operate datagrid [/align]
[align=left]//---Author:Knight[/align]
[align=left]//---Date:Mar.17, 2006[/align]
[align=left]//-------------------------------------------------------------------------[/align]
[align=left]//----------------------{ Datagrid Demo }----------------------------------[/align]
using System;<
4000
/div>
[align=left]using System.Drawing;[/align]
[align=left]using System.Collections;[/align]
[align=left]using System.ComponentModel;[/align]
[align=left]using System.Windows.Forms;[/align]
[align=left]using System.Data;[/align]
[align=left]using System.Data.SqlClient;[/align]
[align=left] [/align]
[align=left]namespace CSDataGrid[/align]
[align=left]{[/align]
[align=left] ///<summary>[/align]
[align=left] /// Summary description for frmDataGridDemo.[/align]
[align=left] ///</summary>[/align]
[align=left] public class frmDataGridDemo : System.Windows.Forms.Form[/align]
[align=left] {[/align]
[align=left] private System.Windows.Forms.DataGrid dtgUserInfo;[/align]
[align=left] private System.Windows.Forms.Button btnUpdate;[/align]
[align=left] private System.Windows.Forms.Button btnExit;[/align]
[align=left] [/align]
[align=left] protected SqlConnection sqlConn = new SqlConnection();[/align]
[align=left] protected SqlDataAdapter sqlDAdapter = null;[/align]
[align=left] protected DataSet sqlRecordSet = null;[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] /// Required designer variable.[/align]
[align=left] ///</summary>[/align]
[align=left] private System.ComponentModel.Container components = null;[/align]
[align=left] [/align]
[align=left] public frmDataGridDemo()[/align]
[align=left] {[/align]
[align=left] //[/align]
[align=left] // Required for Windows Form Designer support[/align]
[align=left] //[/align]
[align=left] InitializeComponent();[/align]
[align=left] [/align]
[align=left] //[/align]
[align=left] // TODO: Add any constructor code after InitializeComponent call[/align]
[align=left] //[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] /// Clean up any resources being used.[/align]
[align=left] ///</summary>[/align]
[align=left] protected override void Dispose( bool disposing )[/align]
[align=left] {[/align]
[align=left] if( disposing )[/align]
[align=left] {[/align]
[align=left] if (components != null) [/align]
[align=left] {[/align]
[align=left] components.Dispose();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] base.Dispose( disposing );[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] #region Windows Form Designer generated code[/align]
[align=left] ///<summary>[/align]
[align=left] /// Required method for Designer support - do not modify[/align]
[align=left] /// the contents of this method with the code editor.[/align]
[align=left] ///</summary>[/align]
[align=left] private void InitializeComponent()[/align]
[align=left] {[/align]
[align=left] this.dtgUserInfo = new System.Windows.Forms.DataGrid();[/align]
[align=left] this.btnUpdate = new System.Windows.Forms.Button();[/align]
[align=left] this.btnExit = new System.Windows.Forms.Button();[/align]
[align=left] ((System.ComponentModel.ISupportInitialize)(this.dtgUserInfo)).BeginInit();[/align]
[align=left] this.SuspendLayout();[/align]
[align=left] // [/align]
[align=left] // dtgUserInfo[/align]
[align=left] // [/align]
[align=left] this.dtgUserInfo.DataMember = "";[/align]
[align=left] this.dtgUserInfo.HeaderForeColor = System.Drawing.SystemColors.ControlText;[/align]
[align=left] this.dtgUserInfo.Location = new System.Drawing.Point(8, 16);[/align]
[align=left] this.dtgUserInfo.Name = "dtgUserInfo";[/align]
[align=left] this.dtgUserInfo.Size = new System.Drawing.Size(528, 480);[/align]
[align=left] this.dtgUserInfo.TabIndex = 0;[/align]
[align=left] // [/align]
[align=left] // btnUpdate[/align]
[align=left] // [/align]
[align=left] this.btnUpdate.Location = new System.Drawing.Point(544, 16);[/align]
[align=left] this.btnUpdate.Name = "btnUpdate";[/align]
[align=left] this.btnUpdate.TabIndex = 1;[/align]
[align=left] this.btnUpdate.Text = "&Update";[/align]
[align=left] this.btnUpdate.Click += new System.EventHandler(this.btnUpdate_Click);[/align]
[align=left] // [/align]
[align=left] // btnExit[/align]
[align=left] // [/align]
[align=left] this.btnExit.Location = new System.Drawing.Point(544, 472);[/align]
[align=left] this.btnExit.Name = "btnExit";[/align]
[align=left] this.btnExit.TabIndex = 2;[/align]
[align=left] this.btnExit.Text = "E&xit";[/align]
[align=left] // [/align]
[align=left] // frmDataGridDemo[/align]
[align=left] // [/align]
[align=left] this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);[/align]
[align=left] this.ClientSize = new System.Drawing.Size(634, 511);[/align]
[align=left] this.Controls.Add(this.btnExit);[/align]
[align=left] this.Controls.Add(this.btnUpdate);[/align]
[align=left] this.Controls.Add(this.dtgUserInfo);[/align]
[align=left] this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;[/align]
[align=left] this.MaximizeBox = false;[/align]
[align=left] this.Name = "frmDataGridDemo";[/align]
[align=left] this.Text = "DataGrid Demo";[/align]
[align=left] this.Load += new System.EventHandler(this.frmDataGridDemo_Load);[/align]
[align=left] ((System.ComponentModel.ISupportInitialize)(this.dtgUserInfo)).EndInit();[/align]
[align=left] this.ResumeLayout(false);[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] #endregion[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
f8d8
/// The main entry point for the application.
[align=left] ///</summary>[/align]
[align=left] [STAThread][/align]
[align=left] static void Main() [/align]
[align=left] {[/align]
[align=left] Application.Run(new frmDataGridDemo());[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] private void frmDataGridDemo_Load(object sender, System.EventArgs e)[/align]
[align=left] {[/align]
[align=left] //Set connection string [/align]
[align=left] sqlConn.ConnectionString = yourDBConnectionString;[/align]
[align=left] [/align]
[align=left] //Connect to DB[/align]
[align=left] if( ConnectDB() )[/align]
[align=left] {[/align]
[align=left] //Bind data to datagrid[/align]
[align=left] BindData();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] private void AddDGStyle()[/align]
[align=left] {[/align]
[align=left] DataGridTableStyle ts1 = new DataGridTableStyle(); [/align]
[align=left] [/align]
[align=left] //specify the table from dataset (required step) [/align]
[align=left] ts1.MappingName = "EmployeeInfo"; [/align]
[align=left] PropertyDescriptorCollection pdc = this.BindingContext[/align]
[align=left] [sqlRecordSet, "EmployeeInfo"].GetItemProperties();[/align]
[align=left] [/align]
[align=left] DataGridColumnStyle TextCol = new DataGridTextBoxColumn( pdc["EmployeeID"], "i" );[/align]
[align=left] TextCol.MappingName = "EmployeeID"; [/align]
[align=left] TextCol.HeaderText = "EmployeeID"; [/align]
[align=left] TextCol.Width = 0; [/align]
[align=left] TextCol.ReadOnly = true;[/align]
[align=left] ts1.GridColumnStyles.Add(TextCol); [/align]
[align=left] [/align]
[align=left] TextCol = new DataGridTextBoxColumn(); [/align]
[align=left] TextCol.MappingName = "EmployeeName"; [/align]
[align=left] TextCol.HeaderText = "Employee Name"; [/align]
[align=left] TextCol.Width = 100; [/align]
[align=left] ts1.GridColumnStyles.Add(TextCol); [/align]
[align=left] [/align]
[align=left] TextCol = new DataGridTextBoxColumn( pdc["Salary"], "i" );[/align]
[align=left] TextCol.MappingName = "Salary"; [/align]
[align=left] TextCol.HeaderText = "Salary"; [/align]
[align=left] TextCol.Width = 80; [/align]
[align=left] ts1.GridColumnStyles.Add(TextCol); [/align]
[align=left] [/align]
[align=left] TextCol = new DataGridTextBoxColumn(); [/align]
[align=left] TextCol.MappingName = "CellPhone"; [/align]
[align=left] TextCol.HeaderText = "Cell Phone"; [/align]
[align=left] TextCol.Width = 80; [/align]
[align=left] ts1.GridColumnStyles.Add(TextCol); [/align]
[align=left] [/align]
[align=left] TextCol = new DataGridTextBoxColumn(); [/align]
[align=left] TextCol.MappingName = "EmailAddress"; [/align]
[align=left] TextCol.HeaderText = "Email Address"; [/align]
[align=left] TextCol.Width = 100; [/align]
[align=left] ts1.GridColumnStyles.Add(TextCol); [/align]
[align=left] [/align]
[align=left] dtgUserInfo.TableStyles.Add(ts1);[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] private void SetDAdapterCommands()[/align]
[align=left] {[/align]
[align=left] string strQuery = "";[/align]
[align=left] SqlParameter sqlParm = null;[/align]
[align=left] // Create data adapter with select command[/align]
[align=left] strQuery = "SELECT EmployeeID, EmployeeName, Salary, CellPhone, EmailAddress "[/align]
[align=left] + " FROM EmployeeInfo";[/align]
[align=left] sqlDAdapter = new SqlDataAdapter( strQuery, sqlConn );[/align]
[align=left] [/align]
[align=left] //Set update command[/align]
[align=left] strQuery = "Update EmployeeInfo SET "[/align]
[align=left] + " EmployeeName = @EmployeeName, "[/align]
[align=left] + " Salary = @Salary, "[/align]
[align=left] + " CellPhone = @CellPhone, "[/align]
[align=left] + " EmailAddress = @EmailAddress "[/align]
[align=left] + " WHERE EmployeeID = @EmployeeID ";[/align]
[align=left] [/align]
[align=left] sqlDAdapter.UpdateCommand = new SqlCommand( strQuery, sqlConn );[/align]
[align=left] sqlDAdapter.UpdateCommand.Parameters.Add( "@EmployeeName", SqlDbType.VarChar,[/align]
[align=left] 20, "EmployeeName" );[/align]
[align=left] sqlParm = sqlDAdapter.UpdateCommand.Parameters.Add("@Salary", SqlDbType.Int);[/align]
[align=left] sqlParm.SourceColumn = "Salary";[/align]
[align=left] sqlParm.SourceVersion = DataRowVersion.Current;[/align]
[align=left] sqlDAdapter.UpdateCommand.Parameters.Add( "@CellPhone", SqlDbType.VarChar,[/align]
[align=left] 20, "CellPhone" );[/align]
[align=left] sqlDAdapter.UpdateCommand.Parameters.Add( "@EmailAddress", SqlDbType.VarChar,[/align]
[align=left] 20, "EmailAddress" );[/align]
[align=left] sqlParm = sqlDAdapter.UpdateCommand.Parameters.Add("@EmployeeID", SqlDbType.Int);[/align]
[align=left] sqlParm.SourceColumn = "EmployeeID";[/align]
[align=left] sqlParm.SourceVersion = DataRowVersion.Original;[/align]
[align=left] [/align]
[align=left] //Set insert command[/align]
[align=left] strQuery = "INSERT INTO EmployeeInfo ("[/align]
[align=left] + " EmployeeName, "[/align]
[align=left] + " Salary, "[/align]
[align=left] + " CellPhone, "[/align]
[align=left] + " EmailAddress) "[/align]
[align=left] + " VALUES ( "[/align]
[align=left] + " @EmployeeName, "[/align]
[align=left] + " @Salary, "[/align]
[align=left] + " @CellPhone, "[/align]
[align=left] + " @EmailAddress)";[/align]
[align=left] sqlDAdapter.InsertCommand = new SqlCommand( strQuery, sqlConn );[/align]
[align=left] sqlDAdapter.InsertCommand.Parameters.Add( "@EmployeeName", SqlDbType.VarChar,[/align]
[align=left] 20, "EmployeeName" );[/align]
[align=left] sqlParm = sqlDAdapter.InsertCommand.Parameters.Add("@Salary", SqlDbType.Int);[/align]
[align=left] sqlParm.SourceColumn = "Salary";[/align]
[align=left] sqlParm.SourceVersion = DataRowVersion.Current;[/align]
[align=left] sqlDAdapter.InsertCommand.Parameters.Add( "@CellPhone", SqlDbType.VarChar,[/align]
[align=left] 20, "CellPhone" );[/align]
[align=left] sqlDAdapter.InsertCommand.Parameters.Add( "@EmailAddress", SqlDbType.VarChar,[/align]
[align=left] 20, "EmailAddress" );[/align]
[align=left] [/align]
[align=left] strQuery = "DELETE FROM EmployeeInfo "[/align]
[align=left] + " WHERE EmployeeID = @EmployeeID ";[/align]
[align=left] sqlDAdapter.DeleteCommand = new SqlCommand( strQuery, sqlConn );[/align]
[align=left] sqlParm = sqlDAdapter.DeleteCommand.Parameters.Add("@EmployeeID", SqlDbType.Int);[/align]
[align=left] sqlParm.SourceColumn = "EmployeeID";[/align]
[align=left] sqlParm.SourceVersion = DataRowVersion.Original;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] private void BindData()[/align]
[align=left] {[/align]
[align=left] SetDAdapterCommands();[/align]
[align=left] [/align]
[align=left] //Fill dataset[/align]
[align=left] sqlRecordSet = new DataSet();[/align]
[align=left] sqlDAdapter.Fill( sqlRecordSet, "EmployeeInfo" );[/align]
[align=left] [/align]
[align=left] //Bind datagrid with dataset[/align]
[align=left] dtgUserInfo.SetDataBinding( sqlRecordSet, "EmployeeInfo");[/align]
[align=left] [/align]
[align=left] //Add datagrid style[/align]
[align=left] AddDGStyle();[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] /// Connect to DB[/align]
[align=left] ///</summary>[/align]
[align=left] ///<returns>If connected, return True; else return False</returns>[/align]
[align=left] private bool ConnectDB()[/align]
[align=left] {[/align]
[align=left] //Check current connection's state[/align]
[align=left] try[/align]
[align=left] {[/align]
[align=left] if( sqlConn.State == ConnectionState.Closed[/align]
[align=left] || sqlConn.State == ConnectionState.Broken )[/align]
[align=left] {[/align]
[align=left] //Connection is not available[/align]
[align=left] sqlConn.Close();[/align]
[align=left] }[/align]
[align=left] else[/align]
[align=left] //Connection is available[/align]
[align=left] return true;[/align]
[align=left] }[/align]
[align=left] catch{};[/align]
[align=left] [/align]
[align=left] //Re-connect[/align]
[align=left] try [/align]
[align=left] {[/align]
[align=left] sqlConn.Open();[/align]
[align=left] }[/align]
[align=left] catch(SqlException e) [/align]
[align=left] {[/align]
[align=left] //Sql's exception[/align]
[align=left] MessageBox.Show( e.Message );[/align]
[align=left] }[/align]
[align=left] catch(Exception e)[/align]
[align=left] {[/align]
[align=left] //Other exception[/align]
[align=left] MessageBox.Show( e.Message );[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] if( sqlConn.State == ConnectionState.Closed[/align]
[align=left] || sqlConn.State == ConnectionState.Broken )[/align]
[align=left] //Connection is not available[/align]
[align=left] return false;[/align]
[align=left] else[/align]
[align=left] //Connection is available[/align]
[align=left] return true;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] private void btnUpdate_Click(object sender, System.EventArgs e)[/align]
[align=left] {[/align]
[align=left] sqlDAdapter.Update( sqlRecordSet, "EmployeeInfo" );[/align]
[align=left] sqlRecordSet.Tables["EmployeeInfo"].Rows.Clear();[/align]
[align=left] sqlDAdapter.Fill( sqlRecordSet, "EmployeeInfo" );[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left]}[/align]
上面的代码有很多细节没有作处理,因此仅仅演示如何对DataGrid操作。
相关文章推荐
- 如何在DataGrid中进行添加、删除和修改操作
- 如何在DataGrid中进行添加、删除和修改操作
- 如何在DataGrid中进行添加、删除和修改操作
- php如何连接MYSQL数据库并进行添加、修改、删除操作
- 用WebService实现对数据库进行操作(添加+删除+修改)(转)
- 利用SQL语句进行添加、删除、修改字段,表与字段的基本操作,数据库备份等
- 对DataGridView进行添加、修改、删除数据操作----C#
- Iterator为什么不能对容器的进行添加或修改操作(可以删除)
- Java读取json文件并对json数据进行读取、添加、删除与修改操作
- C#对DataGridView中的数据进行添加、修改、删除操作
- jquery easyui实现datagrid表格向数据库中进行增加,修改和删除操作
- supermap、cesium如何操作entity,添加删除修改等
- Xamarin.Android 入门实例(4)之实现对 SQLLite 进行添加/修改/删除/查询操作
- 如何跳过权限 对表进行 删除,添加,修改
- 对XML文件进行的添加、删除、修改、查询操作。
- 通过LDAP在AD域控上进行添加、删除、修改、查询等各种操作
- MongoDB与PHP的扩展进行添加、修改、查询、删除等操作基础教程
- DataGridView进行添加、修改、删除数据操作-C#
- C#对DataGridView进行添加修改删除操作
- 如何在客户端对ListBox进行添加删除操作