2012年3月25日 星期日
ExecuteReader 必須有開啟與可用的連接。連接目前的狀態已關閉
conn 太早執行 conn.close(),所以後續要在執行reader 的動作就無法連線,通常出現在迴圈上或一開始就沒有open
2012年3月21日 星期三
並未將物件參考設定為物件的執行個體
發覺select 出來的第一個欄位都會出現此問題,不知為何?
別人都沒事,只有他搞怪??
竟然連欄位都找不到?
我知到了,因為在datatable 加入column(0)知指令,改變了select出來所設定的原來的名稱(若無先加入TABLE欄位,SQL出來會由0行開始
耶!完成
sql_str = "select 新製令編號 'Column1',作業名稱 'Column2',sum(報工量) 'Column4',sum(使用時間)/60 'Column5' from workorders where 日期 = '" & DateTimePicker1.Value.Date & "'" & _
" group by 作業名稱 order by 新製令編號"
da = New MySqlDataAdapter(sql_str, MDIParent1.conn)
cb = New MySqlCommandBuilder(da)
data.Columns.Add("Column3") 先加進去就先排
da.Fill(data) SQL出來的在排
後面再加
data.Columns.Add("Column8")
data.Columns.Add("Column9")
data.Columns.Add("Column10")
data.Columns.Add("Column11")
DataGridView1.DataSource = data
DataGridView1.Columns("Column3").HeaderText = " 品名"
DataGridView1.Columns("Column8").HeaderText = " 單件工時"
DataGridView1.Columns("Column9").HeaderText = " 標準工時"
DataGridView1.Columns("Column10").HeaderText = " 效率%"
DataGridView1.Columns("Column11").HeaderText = " 低於80%之異常處理"
DataGridView1.Columns("Column2").HeaderText = " 工程名稱"
DataGridView1.Columns("Column4").HeaderText = " 本日完工數量"
DataGridView1.Columns("Column1").HeaderText = " 製令"
DataGridView1.Columns("Column5").HeaderText = " 總工時"
無法在資料繫結 DataGridView 控制項上設定 ColumnCount 屬性
DataGridView1.ColumnCount = 5
sql_str = "select 新製令編號 'Column1',作業名稱 'Column2',sum(報工量) 'Column4',sum(使用時間)/60 'Column5' from workorders where 日期 = '" & DateTimePicker1.Value.Date & "'" & _
" group by 作業名稱 order by 新製令編號"
Dim data As DataTable
data = Nothing
DataGridView1.DataSource = data
data = New DataTable
da = New MySqlDataAdapter(sql_str, MDIParent1.conn)
cb = New MySqlCommandBuilder(da)
da.Fill(data)
DataGridView1.DataSource = data
DataGridView1.Columns(0).Name = "Column3"
DataGridView1.Columns(1).Name = "Column8"
DataGridView1.Columns(2).Name = "Column9"
DataGridView1.Columns(3).Name = "Column10"
DataGridView1.Columns(4).Name = "Column11"
DataGridView1.Columns("Column3").HeaderText = " 品名"
.....
.......
.......
DataGridView1.Columns("Column9").HeaderText = " 標準工時"
DataGridView1.Columns("Column10").HeaderText = " 效率%"
DataGridView1.Columns("Column11").HeaderText = " 低於80%之異常處理"
當取消'DataGridView1.ColumnCount = 5 時出現此錯誤:
索引超出範圍。必須為非負數且小於集合的大小。
參數名稱: index
DataGridView1.Columns(0).Name = "Column3"
DataGridView1.Columns(1).Name = "Column8"
DataGridView1.Columns(2).Name = "Column9"
DataGridView1.Columns(3).Name = "Column10"
DataGridView1.Columns(4).Name = "Column11"
DataGridView1.Columns("Column3").HeaderText = " 品名"
結果應該是這樣就OK了
Dim data As DataTable
data = Nothing
DataGridView1.DataSource = data
data = New DataTable '
DataGridView1.ColumnCount = 5 注意此程式位置
sql_str = "select 新製令編號 'Column1',作業名稱 'Column2',sum(報工量) 'Column4',sum(使用時間)/60 'Column5' from workorders where 日期 = '" & DateTimePicker1.Value.Date & "'" & _
" group by 作業名稱 order by 新製令編號"
sql_str = "select 新製令編號 'Column1',作業名稱 'Column2',sum(報工量) 'Column4',sum(使用時間)/60 'Column5' from workorders where 日期 = '" & DateTimePicker1.Value.Date & "'" & _
" group by 作業名稱 order by 新製令編號"
Dim data As DataTable
data = Nothing
DataGridView1.DataSource = data
data = New DataTable
da = New MySqlDataAdapter(sql_str, MDIParent1.conn)
cb = New MySqlCommandBuilder(da)
da.Fill(data)
DataGridView1.DataSource = data
DataGridView1.Columns(0).Name = "Column3"
DataGridView1.Columns(1).Name = "Column8"
DataGridView1.Columns(2).Name = "Column9"
DataGridView1.Columns(3).Name = "Column10"
DataGridView1.Columns(4).Name = "Column11"
DataGridView1.Columns("Column3").HeaderText = " 品名"
.....
.......
.......
DataGridView1.Columns("Column9").HeaderText = " 標準工時"
DataGridView1.Columns("Column10").HeaderText = " 效率%"
DataGridView1.Columns("Column11").HeaderText = " 低於80%之異常處理"
當取消'DataGridView1.ColumnCount = 5 時出現此錯誤:
索引超出範圍。必須為非負數且小於集合的大小。
參數名稱: index
DataGridView1.Columns(0).Name = "Column3"
DataGridView1.Columns(1).Name = "Column8"
DataGridView1.Columns(2).Name = "Column9"
DataGridView1.Columns(3).Name = "Column10"
DataGridView1.Columns(4).Name = "Column11"
DataGridView1.Columns("Column3").HeaderText = " 品名"
結果應該是這樣就OK了
Dim data As DataTable
data = Nothing
DataGridView1.DataSource = data
data = New DataTable '
DataGridView1.ColumnCount = 5 注意此程式位置
sql_str = "select 新製令編號 'Column1',作業名稱 'Column2',sum(報工量) 'Column4',sum(使用時間)/60 'Column5' from workorders where 日期 = '" & DateTimePicker1.Value.Date & "'" & _
" group by 作業名稱 order by 新製令編號"
訂閱:
文章 (Atom)