——此文章摘自《C#高级编程(第
版)》定价
元 特价
元 购买
第二行dataGridBeginInit();禁止激发该网格上的事件在对控件进行大量的修改时这是很必要的如果没有禁止该事件对网格的每次修改都会刷新屏幕然后设置控件的位置和大小定义标签索引把控件固定在窗口的左上角和右下角便于跟蹤主应用程序窗口的对应控件
下面创建按钮在初始化按钮时基本步骤是一样的
thisretrieveButton = new SystemWindowsFormsButton();
retrieveButtonLocation = new SystemDrawingPoint( );
retrieveButtonSize = new SystemDrawingSize( );
retrieveButtonTabIndex = ;
retrieveButtonAnchor = AnchorStylesBottom | AnchorStylesRight;
retrieveButtonText = Retrieve;
retrieveButtonClick += new SystemEventHandler
(thisretrieveButton_Click);
thisControlsAdd(thisretrieveButton);
}
按钮会引发Click事件所以定义该事件的事件处理程序retrieveButton_Click
protected void retrieveButton_Click(object sender SystemEventArgs e)
{
retrieveButtonEnabled = false;
string source = server=(local)\\NetSDK; +
uid=QSUser;pwd=QSPassword; +
database=Northwind;
在选择了Customers表中的数据填充DataSet后调用SetDataBinding把DataSet绑定到网格上这个方法的参数是DataSet和其中要显示的表名该网格一次只显示一个DataTable中的数据即使DataSet包含多个表也是这样本章将举一个示例显示带有多个DataTable的DataSet中的数据当然DataSet中的数据可以来自于许多实际的数据库表(或者多个表的视图)
string select = SELECT * FROM Customers ;
SqlConnection conn = new SqlConnection(source);
SqlDataAdapter da = new SqlDataAdapter( select conn);
DataSet ds = new DataSet();
daFill(ds Customers);
dataGridSetDataBinding(ds Customers);
}
static void Main()
{
ApplicationRun(new DisplayTabularData());
}
}
要编译该示例在命令提示符上输入下述命令
csc /t:winexe /debug+ /r:Systemdll /r:SystemDatadll /r:systemwindowsformsdll
/recurse:*cs
/recurse:*cs参数会编译当前目录及其子目录下的所有cs文件这里使用该参数是为了确保把所有相关的代码文件都包含到可执行文件中
[] []