本人以前用PB做过一些开发,挺喜欢DATAWINDOW的。在学习C#时发现给DataGirdView加上右键菜单的效果和PB中的DATAWINDOW有相同的效果。其中数据库的操作应用的SQLDataAdatper,下面源码奉上,欢迎朋友们提出指正和意见。
首先,先建立一个Form窗口取名为DataGridViewDemo 从工具箱中选择控件,并设置属性如下
DataGridView name属性 dataGridView
TextBox name属性 txtContent
Button name属性 btSave Text 属性 保存
Button name 属性 btExit Text属性 退出
DataGridViewDemo 类代码如下
复制代码
首先,先建立一个Form窗口取名为DataGridViewDemo 从工具箱中选择控件,并设置属性如下
DataGridView name属性 dataGridView
TextBox name属性 txtContent
Button name属性 btSave Text 属性 保存
Button name 属性 btExit Text属性 退出
DataGridViewDemo 类代码如下
- 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 C15Demo
- {
- public partial class DataGridViewDemo : Form
- {
- //全局变量
- private SqlDataAdapter adapter = null;
- private DataTable dt = null;
- public DataGridViewDemo()
- {
- InitializeComponent();
- }
- /// <summary>
- /// 初始化SQLDataAdapter类添加对数据表的增删改操作
- /// </summary>
- private void InitAdapter()
- {
- SqlConnection connection = new SqlConnection();
- connection.ConnectionString = "Persist Security Info=false;Integrated Security=SSPI;Initial Catalog=Northwind;server=(local)";
- adapter = new SqlDataAdapter("select ProductID,ProductName,UnitPrice,Discontinued from Products", connection);
- adapter.FillLoadOption = LoadOption.OverwriteChanges;
- //添加修改命令
- SqlCommand UpdataCommand = new SqlCommand();
- UpdataCommand.Connection = connection;
- UpdataCommand.CommandText = "Update Products set ProductName = @ProductName,UnitPrice=@UnitPrice,Discontinued = @Discontinued where ProductID=@Productid ";
- UpdataCommand.Parameters.Add("@ProductID", SqlDbType.Int, 4, "ProductID");
- UpdataCommand.Parameters.Add("@ProductName", SqlDbType.VarChar, 50, "ProductName");
- UpdataCommand.Parameters.Add("@UnitPrice", SqlDbType.Money, 20, "UnitPrice");
- UpdataCommand.Parameters.Add("@Discontinued", SqlDbType.Bit, 1, "Discontinued");
- adapter.UpdateCommand = UpdataCommand;
- //添加新增
- SqlCommand InsertCommand = new SqlCommand();
- InsertCommand.Connection = connection;
- InsertCommand.CommandText = "Insert into Products (ProductName,UnitPrice,Discontinued)values(@ProductName,@UnitPrice,@Discontinued) ";
- InsertCommand.Parameters.Add("@ProductName", SqlDbType.VarChar, 50, "ProductName");
- InsertCommand.Parameters.Add("@UnitPrice", SqlDbType.Money, 20, "UnitPrice");
- InsertCommand.Parameters.Add("@Discontinued", SqlDbType.Bit, 1, "Discontinued");
- adapter.InsertCommand = InsertCommand;
- //添加删除
- SqlCommand DeleteCommand = new SqlCommand();
- DeleteCommand.Connection = connection;
- DeleteCommand.CommandText = "Delete Products where ProductID=@ProductID ";
- DeleteCommand.Parameters.Add("@ProductID", SqlDbType.Int, 4, "ProductID");
- adapter.DeleteCommand = DeleteCommand;
- }
- /// <summary>
- /// 初始化DataGridView并绑定列,给DataGridView添加右键菜单
- /// </summary>
- /// <param name="dataGridView">DataGrivView控件</param>
- private void InitDataGridView(DataGridView dataGridView)
- {
- dataGridView.AutoGenerateColumns = false;
- dataGridView.AllowUserToAddRows = false ;
- dataGridView.AllowUserToDeleteRows = false ;
- dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- dataGridView.EditMode = DataGridViewEditMode.EditOnEnter;
- dataGridView.MultiSelect = false;
- dataGridView.ScrollBars = ScrollBars.Vertical;
- dataGridView.VirtualMode = true;
- //添加列
- DataGridViewTextBoxColumn Column1 = new DataGridViewTextBoxColumn();
- Column1.DataPropertyName = "ProductID";
- Column1.HeaderText = "产品 ID";
- Column1.Name = "Column1";
- //Column1.ReadOnly = true;
- DataGridViewTextBoxColumn Column2 = new DataGridViewTextBoxColumn();
- Column2.DataPropertyName = "ProductName";
- Column2.HeaderText = "产品名称";
- Column2.Name = "Column2";
- Column2.Width = 165;
- DataGridViewTextBoxColumn Column3 = new DataGridViewTextBoxColumn();
- Column3.DataPropertyName = "UnitPrice";
- Column3.HeaderText = "价格";
- Column3.Name = "Column3";
- DataGridViewCheckBoxColumn Column4 = new DataGridViewCheckBoxColumn();
- Column4.DataPropertyName = "Discontinued";
- Column4.HeaderText = "是否使用";
- Column4.Name = "Column4";
- dataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { Column1, Column2, Column3 ,Column4 });
- //添加右键菜单
- ContextMenuStrip contextMenuStrip = new ContextMenuStrip();
- contextMenuStrip.ShowCheckMargin = false;
- contextMenuStrip.ShowImageMargin = false;
- contextMenuStrip.ShowItemToolTips = true;
- contextMenuStrip.TextDirection = ToolStripTextDirection.Horizontal;
- contextMenuStrip.Opening += new CancelEventHandler(contextMenuStrip_Opening);
- dataGridView.ContextMenuStrip = contextMenuStrip;
- dataGridView.CurrentCellChanged += new EventHandler(dataGridView_CurrentCellChanged);
- }