2017-08-21 1 views
0

enter image description hereenter image description hereenter image description hereenter image description here Daten empfangen von Excel Spalte und ändern sie, wenn Wert in Kombinationsfeld geändert. HierDaten empfangen von Excel-Spalte und zeigen sie in Texboxen, wenn Wert im Kombinationsfeld geändert

ist der Code:

private void comboBox1_SelectedIndexChanged_1(object sender, EventArgs e) 
{ 
    con.Open();   
    str = "select * from [Sac Haddehanesi Kalite Kontrol] where [Bobin ID]='" + comboBox1.Text.Trim() + "'"; 
    com = new OleDbCommand(str, con); 
    OleDbDataReader reader = com.ExecuteReader(); 
    if (reader.Read()) 
    { 
     comboBox1.Text = reader["Bobin ID"].ToString(); 
     textBox1.Text = reader["Slab ID"].ToString(); 
     textBox2.Text = reader["Döküm Kalitesi"].ToString(); 
     textBox3.Text = reader["Sipariş Çelik Kalitesi"].ToString(); 
     textBox4.Text = reader["Standart Kalite Adı"].ToString(); 
     textBox5.Text = reader["Bobin Planlanan Kalınlık (mm)"].ToString(); 
    } 
    con.Close(); 
    reader.Close(); 
} 

Jede Hilfe wird sehr geschätzt ......

Thank u

+0

Haben Sie den Code debuggen, ob es in if Anweisung bewegt? –

+0

Wie lautet der Datentyp Ihrer _Bobin ID_? –

+0

Es scheint Datum. Aber es ist kein Datum. Es enthält Zahlen und Buchstaben. Es wird von einem anderen Mann geschickt. Also, ich kann den Datentyp in Excel nicht ändern. – Serkan

Antwort

0

Excel Sheets Namen mit einem $ enden und wenn der Name des Blattes Es enthält Leerzeichen in einfachen Anführungszeichen. So sollten Sie Ihre SQL lesen ...

Select * From ['Sac Haddehanesi Kalite Kontrol$'] 

Sie Ihre Abfrage parametrisieren sollte so richtig wird es sein ...

Select * From ['Sac Haddehanesi Kalite Kontrol$'] Where [Bobin ID] = ? 

OLEDB Parameter Positions sind nicht genannt (wie in SQL/Server). Sie geben sie in der Reihenfolge an, in der sie in der Abfrage angezeigt werden.

So kann Ihr Code wird ...

OleDbCommand com = new OleDbCommand("Select * From ['Sac Haddehanesi Kalite Kontrol$'] Where [Bobin ID] = ?", conn); 
com.Parameters.Add("?", OleDbType.VarChar).Value = "abc"; 
OleDbDataReader reader = com.ExecuteReader(); 

Sie können die Tabellen in der Arbeitsmappe durch von ...

DataTable TablesList = conn.GetSchema("Tables"); 

foreach (DataRow TableRow in TablesList.Rows) 
{ 
    if (TableRow["TABLE_NAME"].ToString().EndsWith("$") | TableRow["TABLE_NAME"].ToString().EndsWith("$'")) 
    { 
     // Handle the Excel Sheet 
    } 
} 

Übrigens uns Sie zeigen nicht die Verbindungszeichenfolge in Ihrem Code. Hier ist die, die ich für die oben genannten verwendet habe ...

conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Test.xlsx;Extended properties='Excel 12.0;HDR=Yes;IMEX=1'"; 
+0

danke, aber es doesn ' t arbeiten ... – Serkan

+0

Es funktioniert perfekt für mich.So habe ich Angst, dass, wenn Sie immer noch Probleme haben, etwas anderes los ist, dass Sie nicht in Ihrem Beispielcode gezeigt haben.Vielleicht könnten Sie mehr posten. –

Verwandte Themen