Insert Into mit zwei verschiedenen Datenquellen?

Gotenks

Mitglied
Hallo...

Ich habe ein Problem und weiß nicht wie ich weiter kommen kann :/
Also ich habe zwei Datenquellen, zum einen eine Excel Tabelle (die ich mittels Interop auslese) und eine SQL-Tabelle (die ich mittels SQLReader auslese). Mit diesen beiden verfahren, schaffe ich es die Inhalte in Variable zu speichern.

Jetzt will ich halt mit Insert Into diese Variablen in eine SQL-Tabelle füllen, doch zunächst muss er zwei Varibalen miteinander vergleichen und wenn diese GLEICH sind, müssen sie eine Zeile ergeben.

Hier ist mal ein Code von mir:
C#:
double geld = 0;
DateTime fälligkeit = new DateTime(2012, 11, 06);
Int32 aID = 0;

string Name = "", BName =""; 
int bID = 0;            
           
            SqlConnection Conn = new SqlConnection(ConStr);
            Conn.Open();
            SqlCommand Cmd = new SqlCommand(SelectStr, Conn);
            SqlDataReader Reader = Cmd.ExecuteReader();

            while (Reader.Read())
            {
                try
                {
                    bID = Convert.ToInt32(bankReader[0]);
                    Name = Convert.ToString(bankReader[1]);
                    if (!bankReader.IsDBNull(2))
                        BName = Convert.ToString(bankReader[2]);
                    else
                        BName = " ";              
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Fehler");
                }
            }

//hier wird jetzt Excel geöffnet, mittels InterOP

            int excelRowCount = 2;
            for (excelRowCount = 2; excelRowCount <= excelRange.Rows.Count; excelRowCount++)
            {
                if ((excelRange.Cells[excelRowCount, 2] as Excel.Range).Value2 != null)
                {
                    try
                    {

                        Excel.Range rngGeld = excelWoorksheet.get_Range("A" + excelRowCount.ToString(), missing);
                        Excel.Range rngAID = excelWoorksheet.get_Range("O" + excelRowCount.ToString(), missing);
                        
                        geld = Convert.ToDouble(rngGeld.Value2);
                        fälligkeit = (DateTime)(excelRange.Cells[excelRowCount, 4] as Excel.Range).Value;
                        aID = Convert.ToInt32(rngAID.Value2);

                        using (SqlConnection resultConn = new SqlConnection(ZahlungsConStr))
                        {
                            resultConn .Open();
                            SqlCommand cmd = new SqlCommand();
                            cmd.Connection = resultConn;
                            cmd.CommandType = CommandType.Text;
                            cmd.CommandText = "SELECT * FROM resultTable";

                            cmd.CommandText += "WHERE Name = @Name ";
                            cmd.CommandText += "AND ID= @AID";
                            cmd.CommandText += "AND Geld= @geld";
                            cmd.CommandText += "AND [Fälligkeit am] = @fälligkeit ";
                            cmd.CommandText += "AND Bname = @BName ";

                            cmd.Parameters.AddWithValue("@name", Name);
                            cmd.Parameters.AddWithValue("@AID", aID);
                            cmd.Parameters.AddWithValue("@geld", geld);
                            cmd.Parameters.AddWithValue("@fälligkeit", fälligkeit);
                            cmd.Parameters.AddWithValue("@bankname", BName);

                            if (aID == bID)
// dann habe ich das eingebaut, was im anderem Theard erarbeitet wurde...
//doch wenn ich auf Button Klicke, dann kopiert er die Datensätze so wie ich es Will alles schön und gut, doch wenn ich wieder drauf klicke kopiert er die datensätze wieder obwohl sie schon drinne enthalten sind :/

Also meine frage, wie schaffe ich das, dass nur einmal kopiert wird? Hier haben mir andere User geolfen soweit zu kommen

wenn ich nur eine Datenquelle habe, dann war es kein Problem, doch bei zwei verschiedenen Datenquellen funktioniert das nicht :/

Ich hoffe jmd, versteht mein anliegen und kann mir helfen.

Lg
 
Zuletzt bearbeitet von einem Moderator:
Zurück