2017-03-02 102 views
-1

(對不起,我的英語不好)我爲我爸做了這個程序,所以請幫助我。C#OleDb dataGridView填充文本框

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 

我不知道有什麼問題。請幫忙。我會回答你所有的問題。

+0

在爲你父親製作程序之前,你應該爲自己學習C#。 –

回答

0

對於InvalidOperationExceptions,最好總是使用方法(System.Windows.Forms.DataGridViewRowCollection.Add(Object[] values))的check the documentation引發異常,以查看拋出異常的情況。

既然你手動添加值,我會首先檢查是否是第一次違反這種情況下:

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

而且檢查是否您違反這種情況下:

The DataGridView has no columns.

如果這兩種情況都不是這種情況,請查看其餘的例外情況,看看您是否違反了這些例外情況。