地磅称量系统之(37~39) 直接向数据库的数据表WtBill添加测试数据以及绑定用户控件和使用编码的方式控制dataGridView控件的每列属性和添加数据数据库的表中不存在的字段(非绑定列)
2008-03-06 20:41
1136 查看
让知识更加联贯 让技术走进生活
我的博客 我的程序 我的网络
------郑紫至
E-mail:zhengzizhi@yahoo.com.cn
地磅称量系统
37.直接通过SQL 向数据库里面名称为WtBill的表添加两条测试数据
INSERT
INTO WtBill
(BillNo,VehicleNo,GrossTime,TraceTime,CargoName
,GrossWt,TraceWt,NetWt,Unit,CustomerName,Operator)
VALUES
('20080302-0001'
,N'粤B12345'
,'2008-3-2 10:30:00' ,'2008-3-2 14:36:50'
,N'重油', 908277
, 45082 , 863195,'kg'
,N'SH集团'
,N'郑紫至')
INSERT
INTO WtBill
(BillNo,VehicleNo,GrossTime,TraceTime,CargoName
,GrossWt,TraceWt,NetWt,Unit,CustomerName,Operator)
VALUES
('20080302-0002'
,N'粤B66666'
,'2008-3-2 11:20:38' ,'2008-3-2 15:18:25'
,N'大米', 873644
, 57000 , 816644,'kg'
,N'JS集团'
,N'Peter')
38.显示绑定数据 重新设置dataGridView1的每列属性 添加参考System.Data.Linq
在代码编写之前添加两个命名空间
using LWSMapping;
using System.Linq;
代码如下所示(等一下再编写添加 修改 删除数据的代码 而且实现起来非常的简单):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using LWSMapping;
using System.Linq;
namespace WinApp
{
public
partial class
FrmWtBill : BaseForm.MyTemplateForm
{
public FrmWtBill()
{
InitializeComponent();
}
private
WtBillMappingDataContext db;
private
void FrmWtBill_Load(object sender,
EventArgs e)
{
db = new
WtBillMappingDataContext();
var WtBills =
from a in db.WtBills
orderby a.BillNo
select a;
BindData();
this.bindingSource1.DataSource = WtBills;
//InitColumn()放在提供数据源控件之后初始化这样每列次序会按照我们预期的顺序排列。
//不使用编程方式来实现每列的属性也可以,在dataGridView1上直接编辑每列的属性。
InitColumn();
}
///<summary>
///将提供数据源的控件绑定到用户用来编辑数据的控件上
///</summary>
private
void BindData()
{
this.txtBillNo.DataBindings.Add("Text",
this.bindingSource1,
"BillNo");
this.cmbVehicleNo.DataBindings.Add("Text",
this.bindingSource1,
"VehicleNo");
this.txtGrossTime.DataBindings.Add("Text",
this.bindingSource1,
"GrossTime");
this.txtTraceTime.DataBindings.Add("Text",
this.bindingSource1,
"TraceTime");
this.cmbCargoName.DataBindings.Add("Text",
this.bindingSource1,
"CargoName");
this.txtGrossWt.DataBindings.Add("Text",
this.bindingSource1,
"GrossWt");
this.txtTraceWt.DataBindings.Add("Text",
this.bindingSource1,
"TraceWt");
this.txtNetWt.DataBindings.Add("Text",
this.bindingSource1,
"NetWt");
this.cmbCustomerName.DataBindings.Add("Text",
this.bindingSource1,
"CustomerName");
this.txtOperator.DataBindings.Add("Text",
this.bindingSource1,
"Operator");
}
///<summary>
///使用编程的方式用来控制dataGridView控件的每列属性
///</summary>
private
void InitColumn()
{
this.dataGridView1.Columns.Clear();
System.Windows.Forms.DataGridViewTextBoxColumn txtBoxColumn =
null;
System.Windows.Forms.DataGridViewCheckBoxColumn checkBoxColumn =
null;
checkBoxColumn =
new System.Windows.Forms.DataGridViewCheckBoxColumn();
checkBoxColumn.DataPropertyName =
"checkBox";
checkBoxColumn.Name =
"checkBox";
checkBoxColumn.HeaderText =
"打印";
checkBoxColumn.Width = 35;
checkBoxColumn.ReadOnly =
false;
checkBoxColumn.DisplayIndex = 0;
this.dataGridView1.Columns.Add(checkBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"BillNo";
txtBoxColumn.Name =
"BillNo";
txtBoxColumn.HeaderText =
"单据编号";
txtBoxColumn.Width = 90;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 1;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"VehicleNo";
txtBoxColumn.Name =
"VehicleNo";
txtBoxColumn.HeaderText =
"车牌编号";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 2;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"GrossTime";
txtBoxColumn.Name =
"GrossTime";
txtBoxColumn.HeaderText =
"毛称时间";
txtBoxColumn.Width = 110;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 3;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"TraceTime";
txtBoxColumn.Name =
"TraceTime";
txtBoxColumn.HeaderText =
"皮称时间";
txtBoxColumn.Width = 110;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 4;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"CargoName";
txtBoxColumn.Name =
"CargoName";
txtBoxColumn.HeaderText =
"货物名称";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 5;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"GrossWt";
txtBoxColumn.Name =
"GrossWt";
txtBoxColumn.HeaderText =
"毛重";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 6;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"TraceWt";
txtBoxColumn.Name =
"TraceWt";
txtBoxColumn.HeaderText =
"皮重";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 7;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"NetWt";
txtBoxColumn.Name =
"NetWt";
txtBoxColumn.HeaderText =
"净重";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 8;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"Unit";
txtBoxColumn.Name =
"Unit";
txtBoxColumn.HeaderText =
"单位";
txtBoxColumn.Width = 35;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 9;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"CustomerName";
txtBoxColumn.Name =
"CustomerName";
txtBoxColumn.HeaderText =
"客户名称";
txtBoxColumn.Width = 120;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 10;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"Operator";
txtBoxColumn.Name =
"Operator";
txtBoxColumn.HeaderText =
"司称人员";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 11;
this.dataGridView1.Columns.Add(txtBoxColumn);
}
}
}
39.从数据库中读取数据到用户界面和绑定数据的效果图如下
注意:打印这列数据库的WtBill表内不包括这个字段的是在上面代码中添加进去的
所以很有必要使用编程的方式去控制dataGridView
我的博客 我的程序 我的网络
------郑紫至
E-mail:zhengzizhi@yahoo.com.cn
地磅称量系统
37.直接通过SQL 向数据库里面名称为WtBill的表添加两条测试数据
INSERT
INTO WtBill
(BillNo,VehicleNo,GrossTime,TraceTime,CargoName
,GrossWt,TraceWt,NetWt,Unit,CustomerName,Operator)
VALUES
('20080302-0001'
,N'粤B12345'
,'2008-3-2 10:30:00' ,'2008-3-2 14:36:50'
,N'重油', 908277
, 45082 , 863195,'kg'
,N'SH集团'
,N'郑紫至')
INSERT
INTO WtBill
(BillNo,VehicleNo,GrossTime,TraceTime,CargoName
,GrossWt,TraceWt,NetWt,Unit,CustomerName,Operator)
VALUES
('20080302-0002'
,N'粤B66666'
,'2008-3-2 11:20:38' ,'2008-3-2 15:18:25'
,N'大米', 873644
, 57000 , 816644,'kg'
,N'JS集团'
,N'Peter')
38.显示绑定数据 重新设置dataGridView1的每列属性 添加参考System.Data.Linq
在代码编写之前添加两个命名空间
using LWSMapping;
using System.Linq;
代码如下所示(等一下再编写添加 修改 删除数据的代码 而且实现起来非常的简单):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using LWSMapping;
using System.Linq;
namespace WinApp
{
public
partial class
FrmWtBill : BaseForm.MyTemplateForm
{
public FrmWtBill()
{
InitializeComponent();
}
private
WtBillMappingDataContext db;
private
void FrmWtBill_Load(object sender,
EventArgs e)
{
db = new
WtBillMappingDataContext();
var WtBills =
from a in db.WtBills
orderby a.BillNo
select a;
BindData();
this.bindingSource1.DataSource = WtBills;
//InitColumn()放在提供数据源控件之后初始化这样每列次序会按照我们预期的顺序排列。
//不使用编程方式来实现每列的属性也可以,在dataGridView1上直接编辑每列的属性。
InitColumn();
}
///<summary>
///将提供数据源的控件绑定到用户用来编辑数据的控件上
///</summary>
private
void BindData()
{
this.txtBillNo.DataBindings.Add("Text",
this.bindingSource1,
"BillNo");
this.cmbVehicleNo.DataBindings.Add("Text",
this.bindingSource1,
"VehicleNo");
this.txtGrossTime.DataBindings.Add("Text",
this.bindingSource1,
"GrossTime");
this.txtTraceTime.DataBindings.Add("Text",
this.bindingSource1,
"TraceTime");
this.cmbCargoName.DataBindings.Add("Text",
this.bindingSource1,
"CargoName");
this.txtGrossWt.DataBindings.Add("Text",
this.bindingSource1,
"GrossWt");
this.txtTraceWt.DataBindings.Add("Text",
this.bindingSource1,
"TraceWt");
this.txtNetWt.DataBindings.Add("Text",
this.bindingSource1,
"NetWt");
this.cmbCustomerName.DataBindings.Add("Text",
this.bindingSource1,
"CustomerName");
this.txtOperator.DataBindings.Add("Text",
this.bindingSource1,
"Operator");
}
///<summary>
///使用编程的方式用来控制dataGridView控件的每列属性
///</summary>
private
void InitColumn()
{
this.dataGridView1.Columns.Clear();
System.Windows.Forms.DataGridViewTextBoxColumn txtBoxColumn =
null;
System.Windows.Forms.DataGridViewCheckBoxColumn checkBoxColumn =
null;
checkBoxColumn =
new System.Windows.Forms.DataGridViewCheckBoxColumn();
checkBoxColumn.DataPropertyName =
"checkBox";
checkBoxColumn.Name =
"checkBox";
checkBoxColumn.HeaderText =
"打印";
checkBoxColumn.Width = 35;
checkBoxColumn.ReadOnly =
false;
checkBoxColumn.DisplayIndex = 0;
this.dataGridView1.Columns.Add(checkBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"BillNo";
txtBoxColumn.Name =
"BillNo";
txtBoxColumn.HeaderText =
"单据编号";
txtBoxColumn.Width = 90;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 1;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"VehicleNo";
txtBoxColumn.Name =
"VehicleNo";
txtBoxColumn.HeaderText =
"车牌编号";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 2;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"GrossTime";
txtBoxColumn.Name =
"GrossTime";
txtBoxColumn.HeaderText =
"毛称时间";
txtBoxColumn.Width = 110;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 3;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"TraceTime";
txtBoxColumn.Name =
"TraceTime";
txtBoxColumn.HeaderText =
"皮称时间";
txtBoxColumn.Width = 110;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 4;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"CargoName";
txtBoxColumn.Name =
"CargoName";
txtBoxColumn.HeaderText =
"货物名称";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 5;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"GrossWt";
txtBoxColumn.Name =
"GrossWt";
txtBoxColumn.HeaderText =
"毛重";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 6;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"TraceWt";
txtBoxColumn.Name =
"TraceWt";
txtBoxColumn.HeaderText =
"皮重";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 7;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"NetWt";
txtBoxColumn.Name =
"NetWt";
txtBoxColumn.HeaderText =
"净重";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 8;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"Unit";
txtBoxColumn.Name =
"Unit";
txtBoxColumn.HeaderText =
"单位";
txtBoxColumn.Width = 35;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 9;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"CustomerName";
txtBoxColumn.Name =
"CustomerName";
txtBoxColumn.HeaderText =
"客户名称";
txtBoxColumn.Width = 120;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 10;
this.dataGridView1.Columns.Add(txtBoxColumn);
txtBoxColumn =
new System.Windows.Forms.DataGridViewTextBoxColumn();
txtBoxColumn.DataPropertyName =
"Operator";
txtBoxColumn.Name =
"Operator";
txtBoxColumn.HeaderText =
"司称人员";
txtBoxColumn.Width = 70;
txtBoxColumn.ReadOnly =
true;
txtBoxColumn.SortMode =
DataGridViewColumnSortMode.NotSortable;
txtBoxColumn.DisplayIndex = 11;
this.dataGridView1.Columns.Add(txtBoxColumn);
}
}
}
39.从数据库中读取数据到用户界面和绑定数据的效果图如下
注意:打印这列数据库的WtBill表内不包括这个字段的是在上面代码中添加进去的
所以很有必要使用编程的方式去控制dataGridView
相关文章推荐
- 地磅称量系统之(59) 接收串口数据(串口控件的属性设置和超级终端的使用)
- ASP.NET中DropDownList控件的简单使用--DDL绑定数据库表中值,选择DDL中值直接检索数据
- 地磅称量系统之(35~36)界面层使用BindingSource控件绑定对象数据源
- “当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行。” 的解决一法
- 创建表空间以及用户,授予权限,查看表空间名称及大小,物理文件的名称及大小,数据库的创建日期和归档方式,数据库的版本,数据库库对象,表空间的使用情况,表空间读写
- 当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行
- c#当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行
- 当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行。
- VB 当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行
- GridView 动态添加模板列并绑定数据 实现从外部直接传入控件 和 绑定字段参数
- 当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行
- 地磅称量系统之(10~11)设计用户操作数据的界面控件布局
- ASP.NET中DropDownList控件的简单使用--DDL绑定数据库表中值,选择DDL中值直接检索数据
- WPF 依赖属性,用户控件依赖属性(DependencyProperty 依赖属性、GetValue() SetValue() CLR属性包装器、SetBinding 数据绑定)
- DataGridView数据绑定控件---------按钮添加和事件触发总结
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 数据绑定以及Container.DataItem几种方式与使用方法分析
- 数据绑定控件的ItemDataBound事件中怎么得到数据库字段的值
- 地磅称量系统之(14)创建地磅系统的数据库、表以及新增、修改、删除的存储过程
- 地磅称量系统之(24~26)创建一个名称为WinApp的Windows应用程序作为启动项目并且设置主界面上控件的属性