2013-04-22 12 views
6

Mam tablicę, że zrobiłem z StringBuilder:Jak dodać tablicę do wiersza SQL w języku C#?

string[] input; 
input = sb.ToString().Split(','); 

Teraz chcę wstawić dane z tego „wejścia” do wiersza tablicy SQL? Pierwszy element tablicy musi być liczbą całkowitą. Jak mogę to wdrożyć w najszybszy sposób?

Z góry dziękuję za pomoc lub przykład.


Czytałem z tabeli SQL, edytować i muszę SB i mam:

{50001,Pingu,C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg,A,Skift 2,Requill,sQ,,,,,S5,,,,,,,Motvikt,,Kvalité_nr_2,,,,,,,,,,,,} 


col(0) col(1) col(2) col(3) col(4) col(5) col(6) col(7) 

50001 Pingu Pathway A Skift 2 Requill SQ "" 

Teraz chcę zapisać z powrotem do SQL. Ilość kolumn i nazwy w języku SQL ulegają zmianie. Właśnie dlatego używam tablicy.

Vidor


Próbowałem następujące (patrz kod) i teraz pojawia się błąd:

musi zadeklarować zmienna skalarna "@param"

Tablica cbItems zawiera nazwa kolumn w bazie danych.

  string[] cbItems; 
     cbItems = sbItems.ToString().Split(','); 

     string[] input; 
     input = sb.ToString().Split(','); 

     DataSet dataSet = new DataSet(); 
     dataTable = dataSet.Tables.Add(); 

     SqlConnection cn = new SqlConnection(connString); 

     int firstElement; 
     Int32.TryParse(input[0], out firstElement); 

     string sql = "INSERT INTO UserData1 (Anställningsnummer) VALUES (@ID)"; 

     cn.Open(); 
     SqlCommand cmd = new SqlCommand(sql, cn); 
     cmd.Parameters.AddWithValue("@ID", firstElement); 
     cmd.ExecuteNonQuery(); 

     int i = 1; 
     foreach (string r in input) 
     { 
      string paramName = cbItems[i].ToString(); 
      string anyElement= input[i].ToString(); 
      SqlCommand myInsertCmd = new SqlCommand("INSERT INTO UserData1(" + paramName + ") VALUES(@Param)", cn); 

      cmd.Parameters.AddWithValue("@Param", anyElement); 

      i++; 
      myInsertCmd.ExecuteNonQuery(); 
     } 

     cn.Close(); 

Czy brakuje mi czegoś?

Vidor

+1

Chcesz całej tablicy ciągów do pojedynczej komórki lub wielu komórek? – Dave

+0

Będziemy potrzebować więcej informacji niż to. Jaki jest schemat tabeli, do której próbujesz wstawić i w jaki sposób dane w tablicy są dopasowane do każdej kolumny? –

+0

Podczas iteracji przez każdą tablicę można użyć metody int.TryParse(), która zwraca wartość, jeśli jest int, inaczej nie. Spróbuj i daj mi znać, jeśli potrzebujesz szczegółów. – Vishal

Odpowiedz

5

Musisz przeanalizować pierwszy element w tablicy do liczby całkowitej.

int firstElement; 
Int32.TryParse(input[0], out firstElement); 

Następnie można użyć firstElement i dodać go jako SQL Parameter

string sql = "INSERT INTO TABLE (ID) VALUES (@ID)"; 

SqlCommand cmd = new SqlCommand(sql, _connection); 
cmd.Parameters.AddWithValue("@ID", firstElement); 
Powiązane problemy