2016-03-22 10 views
0

Birkaç araştırma yaptım, ancak problemi çözemedim. Koddaki veritabanından satır ekleyebilir, kaldırabilir veya düzenleyebilirim. Ancak, ızgarayı yenilemedim. Gridview'e yeni satır eklediğimde, içinde görünmüyor. Kodu yeniden derledikten sonra görünür. Izgara görünümünü nasıl yenileyebilirim?Yeni satır ekledikten sonra ızgara görünümünü nasıl yenilerim?

 Dim strSQL = "SELECT * FROM FIXEDCARD WHERE STKCODE = '" & TextEdit1.Text & "'" 
    objCon.Close() 
    Dim sqlCmd As New SqlCommand(strSQL, objCon) 
    objCon.Open() 
    Dim dreader As SqlDataReader 
    dreader = sqlCmd.ExecuteReader 


    If dreader.Read Then 
     'Dim stk_ As String = dreader.GetString(dreader.GetOrdinal("STKCODE")).ToString() 
     DevExpress.XtraEditors.XtraMessageBox.Show("already exists", "Info!", MessageBoxButtons.OK) 
     objCon.Close() 

    Else 
     dreader.Close() 

     strSQL = "INSERT INTO FIXEDCARD(STKCODE, STKEXP, AUTHCODE, GRPCODE, SPECODE" & _ 
           ", SPECODE2, SPECODE3, SPECODE4, SPECODE5, AMORTRATIO, AMORT," & _ 
           "PURCH, SALES, RETUR, UNIT) VALUES('" & TextEdit1.Text & "'," & _ 
           "'" & TextEdit2.Text & "', '" & TextEdit3.Text & "'," & _ 
           "'" & TextEdit4.Text & "', '" & TextEdit5.Text & "'," & _ 
           "'" & TextEdit6.Text & "', '" & TextEdit7.Text & "'," & _ 
           "'" & TextEdit8.Text & "', '" & TextEdit9.Text & "'," & _ 
           "'" & TextEdit10.Text & "', '" & TextEdit11.Text & "'," & _ 
           "'" & TextEdit12.Text & "', '" & TextEdit13.Text & "'," & _ 
           "'" & TextEdit14.Text & "', '" & TextEdit15.Text & "') " 

     sqlCmd = New SqlCommand(strSQL, objCon) 
     sqlCmd.ExecuteNonQuery() 
     objCon.Close() 
    End If 

RefreshGrid() Me.Close()

Ve ayrıca ben her düğme diyoruz zaman GRIDVIEW yenilenir bir yenileme işlevine yazmaya çalışıyorum. Ancak, bir hata yaptım ama onu tanıyamadım.

Public Sub RefreshGrid() 
    Dim T As New DataTable 
    Dim strSQL = "Select * From FIXEDCARD" 
    Dim sqlCmd As New SqlCommand(strSQL, objCon) 
    T = CType(sqlCmd.ExecuteNonQuery(), System.Data.DataTable) 
    GridView1.DataSource = T 
End Sub 
+0

Izgara ızgaraya verilerin yüklenmesi aynı şekilde yenileyin. Sorun ne? –

+0

Problemi aldım ** @ reza **. 'Dim strSQL = "FIXEDCARD itibaren Select *" Dim SQLCmd Yeni SqlCommand (strSQL, objCon) Yeni SqlClient.SqlDataAdapter olarak Dim dsx1 = Yeni DataSet Dim adx1 (strSQL, objCon) adx1.Fill (dsx1 olarak "bir ") Dim t1 DataTable = dsx1.Tables (" a ") fixed_grid.datasource = t1 – kunzhan

+0

Evet, ihtiyacınız olan budur, hatta bir DataSet'e ihtiyacınız yoktur ve' DataTable'ı doğrudan kullanabilirsiniz. . –

cevap

0
Public Function FillDataSet(query As String, ByVal ParamArray para() As Object) As DataTable 

     dim _transaction As SqlTransaction 
     Dim _command As SqlCommand 

     _command = New SqlCommand(query, yourConnection) 

     _ds = New DataSet 
     _sqlda = New SqlDataAdapter(_command) 
     _command.Transaction = _transaction 

     For i = 0 To para.Count - 1 
      _command.Parameters.AddWithValue("@" & i, para(i)) 
     Next 

     _sqlda.Fill(_ds) 

     return _ds.tables(0) 

    End Function 

çağrı o

GridControl1.datasource = Nothing 
    GridControl1.datasource = FillDataSet(YourInsertQuery,YourParam) 
    GridControl1.RefreshDataSource()