vb.net
  • printing
  • datagridview
  • 2013-12-14 22 views 0 likes 
    0

    我使用此代碼以打印從DataGridView &選定行我接收此錯誤(不能執行上System.Int32和System.String「=」操作。)打印

    Me.salesTableAdapter.Fill(Me.ordersDataSet.sales) 
        Me.ordersDataSet.sales.DefaultView.RowFilter = "id='" & 
        Form1.SalesDataGridView.Item(1, Form1.SalesDataGridView.CurrentRow.Index).Value & 
        "'" 
        salesBindingSource.DataSource = Me.ordersDataSet.sales.DefaultView 
        Me.ReportViewer1.RefreshReport() 
    

    回答

    0

    掉落''

    Me.ordersDataSet.sales.DefaultView.RowFilter = String.Format("id={0}", Form1.SalesDataGridView.Item(1, Form1.SalesDataGridView.CurrentRow.Index).Value) 
    

    如果列/字段爲空,你可以這樣做:

    Dim value As Object = Me.SalesDataGridView.Item(1, Me.SalesDataGridView.CurrentRow.Index).Value 
    
    If ((value Is Nothing) OrElse ((TypeOf value Is DBNull) OrElse ((TypeOf value Is System.Data.SqlTypes.INullable) AndAlso DirectCast(value, System.Data.SqlTypes.INullable).IsNull))) Then 
        Me.ordersDataSet.sales.DefaultView.RowFilter = "[id] IS NULL" 
    Else 
        Dim id As Integer = System.Convert.ToInt32(value) 
        Me.ordersDataSet.sales.DefaultView.RowFilter = String.Format("[id]={0}", id) 
    End If 
    
    +0

    感謝重播。我嘗試你的建議和Recive此錯誤(語法錯誤:後「=」操作符缺少操作數。) – user3077945

    +0

    它是由於空值。我將編輯答案。 –

    +0

    僅供參考:'Me.SalesDataGridView.Item(1,N)'實際上是指DataGridView的第二列。 (只要你不知道它使用從零開始的索引。) –

    相關問題