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
Chcesz całej tablicy ciągów do pojedynczej komórki lub wielu komórek? – Dave
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? –
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