我们使用表格主要就是为了让表格绑定上常规的二维表数据,并进行增、删、改、查,最后再进行保存。而加载二维表的方式有很多,下面我们就通过代码示例进行详细介绍。
主要通过两种方式,一种是通过Fill方法,另外一种是通过DataSource属性绑定数据。
Fill方法的语法:
Fill(SQLCommandString,SourceDatabase,fillSchema,fillData,commandType,parameters)
Fill(SQLCommandString,SourceDatabaseName,fillSchema,fillData,commandType,parameters)
参数名称 | 说明 | |
SQLCommandString | 必填参数,字符串类型,Sql语句。 | |
SourceDatabase | 必填参数,Database类型,填充的数据源。 | |
fillSchema |
可选参数,逻辑型,表示是否填充表结构。如果是基础数据表,表中有主键的话,填充表结构可以方便我们用Save方法直接保存数据修改。如果表中没有主键,或者SQL命令填充的是视图,则此参数只能填充为False。默认值为False。 | |
fillData | 可选参数,逻辑型,表示是否填充加载数据。如果想要把SQL语句中返回的表加载上就输入True,如果只想加载一个空表,则填False,默认值为True。 | |
cmdtype |
必填参数,CommandType枚举值之一,指定SQL语句的命令类型。CommandType型枚举包括以下可选值:
| |
parameters | 可选参数,sql语句中使用的参数对象。支持字典Dictionary(string,object)、IEnumerable(DbParameter)、匿名对象。默认为空, |
Vb.Net |
Dim tbl As SmGrid=Proj.Forms("员工管理").ControlDictionary()("tblMain") Dim strSQL As String="select * from EmployeeInfo" Dim db As Database=Proj.SysDataFactory("UserDB") '方法一:通过Fill填充数据 tbl.Fill(strSQL,"UserDB",True,True) '还可以直接使用Database类型 tbl.Fill(strSQL,db,True,True) '如果不希望编辑、保存数据,可以不加载数据结构 tbl.Fill(strSQL,db) '这里也可以搞带参数的填充 '创建一个匿名对象,保存参数 Dim para = New With {.ID = "U000000003"} tbl.Fill("select * from UserInfo where ID=@ID",db,True,True,CommandType.Text,para) '方法二:通过DataSource绑定DataTable Dim dt As DataTable=db.ExecuteDataTable(strSQL,True,True) '直接绑定 tbl.DataSource=dt '方法三:通过DataSource绑定DataTableHelp Dim dtp As DataTableHelp=db.ExecuteDataTableHelp(strSQL,True,True) '直接绑定 tbl.DataSource=dtp |
C# |
SmGrid tbl = Proj.Forms["员工管理"].ControlDictionary()["tblMain"] as SmGrid; string strSQL = "select * from EmployeeInfo"; Database db = Proj.SysDataFactory["UserDB"]; // 方法一:通过Fill填充数据 tbl.Fill(strSQL, "UserDB", true, true); // 还可以直接使用Database类型 tbl.Fill(strSQL, db, true, true); // 如果不希望编辑、保存数据,可以不加载数据结构 tbl.Fill(strSQL, db); // 这里也可以搞带参数的填充 // 创建一个匿名对象,保存参数 var para = new { ID = "U000000003" }; tbl.Fill("select * from UserInfo where ID=@ID", db, true, true, CommandType.Text, para); // 方法二:通过DataSource绑定DataTable DataTable dt = db.ExecuteDataTable(strSQL, true, true); // 直接绑定 tbl.DataSource = dt; // 方法三:通过DataSource绑定DataTableHelp DataTableHelp dtp = db.ExecuteDataTableHelp(strSQL, true, true); // 直接绑定 tbl.DataSource = dtp; |