2022-5-12
数据库与数据集
- 使用 设计器 创建
DataSet
,对应一个自动创建的,派生类。 - 使用 设计器 为 数据组件 绑定 数据源,会自动实例化
DataSet
DataTable
TableAdapter
- 普通组件使用数据集,需要实例化,并使用
Adapter.Fill()
手动填充数据。
// 可以在窗口初始化,或加载事件中创建实例
// DataSet 可以包含多个DataTable,每个DataTable都必须搭配对应的Adapter才可以进行数据交换。
xxxDataSet ds = new xxxDataSet();
// 以上DataSet对象包含若干DataTable成员对象
xxxDataTableAdapter dt = new xxxDataTableAdapter();
// Adapter是一套访问方法集合,与DataSet无关。
// 多个不同的DataTable也可以使用同一个Adapter
dt.Fill(xxxDataTable);
// 获取数据集某个表
var table = xxxDataSet.Tables[index/name];
// 表访问
DataRow[] rows = table.Select(FliterString);
rows[][].ToString().TrimEnd();
2022-5-13
App.config 文件的读写
- 使用包和引用 System.Configuration
- 当文件中包含
<configeSection>
子标签时,其必须放在首位!
// 获取 appconfig 配置对象
appcfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// 使用以下语句访问配置项 访问器可读写
appcfg.AppSettings.Settings["username"].Value;
// 使用一下语句 只读
ConfigurationManager.AppSettings["username"];
// 将内存对象中的更改 保存至文件
appcfg.Save(ConfigurationSaveMode.Modified);
// 重新更新内存对象的值
ConfigurationManager.RefreshSection("appSettings");
应用
- 使用App.config文件存储用户登陆配置。
- 可以实现 “记住密码” 功能
- 为窗口对象配置 私有
Configuration
成员,并在Load()
事件中读入配置。
分页查询
- 将表格拖入设计器,配置分页查询语句到
TableAdapter
。 - 打开
TableAdapter
属性页,配置参数列表,参数名必须与查询语句中参数名相同。 - 生成带有参数列表的
Fill()
等填充方法。
// 分页查询
SELECT * FROM [table]
ORDER BY [Id]
OFFSET @param1 ROWS FETCH NEXT @param2 ONLY
- 注意分页查询语句无法在图形化设计器中呈现结果
关于DataSet
- DataSet在winform中,是作为窗体的成员出现的。其寿命与窗体寿命相同。
- 如果想在内存中保持DataSet,可以改变窗体可见属性代替关闭窗体。
Random类
// 创建Radom实例, 可以指定seed
Random rdm = new Random();
// 获取随机数
rdm.Next(start, end);
rdm.NextDouble();
2022-5-16
选中表格控件某一行触发 ⭐
-
使用 DataGridView 控件
- 设置表格属性
SelectionMode=FullRowSelect
- 编辑表格事件
CellClick()
e.RowIndex
获取点击行。-1为表头行,需排除此行。- 使用
GridViewName.Rows[index].Cells[index].Value.ToString()
获取行某一单元格的值。
- 设置表格属性
-
使用 DXGridView 控件
OptionsSelection
属性修改为 列选择- 编辑表格事件
FocusedRowChanged()
e.FocusedRowHandle
获取点击行序号。-1为表头
n` 属性修改为 列选择- 编辑表格事件
FocusedRowChanged()
e.FocusedRowHandle
获取点击行序号。-1为表头- 使用
GridViewName.GetRowCellValue(index, fieldname)
方法获取单元格值。