#2
yangmz2021-06-12 10:48
|
我在窗体中加入一个datagridview控件,设置一列为 DataGridViewCheckBoxColumn 类型,数据库sqlite3中的一个boolean字段,0表示假,1表示真。同时,该数据调入dataset中,设置该列的数据源为该字段。
datagridview控件中该列的falseValue=0,Truevalue=1,indeterminatevalue=0,Threestate=false
程序调试时,能正常显示数据,数据为0时,checkbox为空白,数据为1时,checkbox为勾选状态
但用鼠标点击任一行的checkbox,并改变其值时,却出现下图问题:
只有本站会员才能查看附件,请 登录
百度了一下,说是值没有变换,由于sqlite3数据库是以0和1来表示false和true,所以出错。所以请教高手一下,如何变换?在哪个事件中变换(有具体代码更好)?一会是0,1 一会是true,fase,对于一个初学者来说头很晕啊
代码如下:
dim salda_sxu_mb As New SQLite.SQLiteDataAdapter '模板中的手续
dim SQLconn_mb As New Data.SQLite.SQLiteConnection '定义系统模板数据库链接对象
dim sqlcmd As New SQLite.SQLiteCommand '定义命令操作
dim ds As New DataSet() '作为数据集
SQLconn_mb.ConnectionString = "data source=" & AppStartDir & "\data\xmnodemould.db" '链接数据库
sqlcmd.Connection = SQLconn_mb
salda_sxu_mb = New SQLite.SQLiteDataAdapter("select * from sxu", SQLconn_mb)
salda_sxu_mb.Fill(ds, "sxu_mb")
Dim addallsxu As SxuModal 'SxuModal为显示datagridview的窗体
addallsxu = New SxuModal
With addallsxu.DataGridView1
.AutoGenerateColumns = False
.Columns(0).Width = 500
.Columns(1).Width = 155
.Columns(2).Width = 70
.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.RowHeadersVisible = True
.RowHeadersWidth = 15
.Columns("Column1").DataPropertyName = ds.Tables("sxu_mb").Columns(0).ToString
.Columns("Column2").DataPropertyName = ds.Tables("sxu_mb").Columns(1).ToString
.Columns("Column3").DataPropertyName = ds.Tables("sxu_mb").Columns(2).ToString ’该列为boolean类型
.DataSource = ds.Tables("sxu_mb")
end with
addallsxu.ShowDialog()
[此贴子已经被作者于2021-6-10 11:46编辑过]