2017-03-02 4 views
-1

(Sorry für mein schlechtes Englisch) Ich habe dieses Programm für meinen Vater, also bitte helfen Sie mir.C# OleDb dataGridView füllen mit Textfeld

public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     connetionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Csaba\\Desktop\\Teszt.accdb ;"; 
     connection = new OleDbConnection(connetionString); 
     Sql = "select * from 2017"; 
     try 
     { 
      connection.Open(); 
      oledbAdapter = new OleDbDataAdapter(Sql, connection); 
      oledbAdapter.Fill(ds); 
      dataGridView1.DataSource = ds.Tables[0]; 
     } 

    private void button3_Click(object sender, EventArgs e) 
    { 
     string[] rowS = { NumeleO, AdresaO, NrMatricolO, VJO, NrMO, DataO, TaurO, CodS, }; 


    int row = 0; 
     row = dataGridView1.Rows.Count - 1; 
     dataGridView1.Rows.Add(new Object[] { NumeleTxT.Text, AdresaTxT, NrMatricolTxT, VJTxT, NrMTxT, DataTxT, TaurTxt, CodTxT }); 
     dataGridView1.Refresh(); 
    } 
} 

Error: System.InvalidOperationException occurred

HResult=0x80131509 
    Source=System.Windows.Forms 
    StackTrace: 
    at System.Windows.Forms.DataGridViewRowCollection.Add(Object[] values) 
    at Apu_Proba_3.Form1.button3_Click(Object sender, EventArgs e) in C:\Users\Csaba\documents\visual studio 2017\Projects\Apu Proba 3\Apu Proba 3\Form1.cs:line 79 
    at System.Windows.Forms.Control.OnClick(EventArgs e) 
    at System.Windows.Forms.Button.OnClick(EventArgs e) 
    at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 
    at System.Windows.Forms.Control.WndProc(Message& m) 
    at System.Windows.Forms.ButtonBase.WndProc(Message& m) 
    at System.Windows.Forms.Button.WndProc(Message& m) 
    at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 
    at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) 
    at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) 
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) 
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) 
at Apu_Proba_3.Program.Main() in C:\Users\Csaba\documents\visual studio 2017\Projects\Apu Proba 3\Apu Proba 3\Program.cs:line 19 

Ich weiß nicht, was das Problem ist. Bitte helfen Sie. Ich werde alle deine Fragen beantworten.

+0

Bevor Sie das Programm für Ihren Vater machen, sollten Sie C# für sich selbst lernen. –

Antwort

0

Für InvalidOperationExceptions ist es am besten, immer check the documentation der Methode (System.Windows.Forms.DataGridViewRowCollection.Add(Object[] values)) die Ausnahme zu werfen, um zu sehen, in welchen Fällen die Ausnahme ausgelöst wird.

Da Sie Werte manuell hinzufügen, würde ich zunächst prüfen, um zu sehen, ob Sie diesen Fall verletzen zuerst:

The row returned by the DataGridView.RowTemplate property has more cells than there are columns in the control.

und die Prüfung, ob Sie diesen Fall sind zu verletzen:

The DataGridView has no columns.

Wenn es keiner dieser Fälle ist, gehen Sie durch die verbleibenden Ausnahmefälle, um zu sehen, ob Sie sie verletzen.