4 réponses

Meilleure réponse

Vous nous demandez de vous fournir un code. Vous n'avez même pas encore essayé.

Utilisez un filereader, ajoutez chaque ligne à une chaîne. Ajoutez la chaîne à votre base de données avec executescalar ou ExecuteNonquery ou quelque chose.

Si vous nous donniez du code, ce serait plus facile de vous aider. Pour le moment, je ne peux rien faire. Google les fonctions que je vous ai dites et vous trouverez suffisamment de sujets avec la même question.

0
Gigitex 26 janv. 2017 à 00:52

Ce sont les deux solutions que j'ai essayées

Solution 1:

//Create Connection to SQL Server
SqlConnection SQLConnection = new SqlConnection();
SQLConnection.ConnectionString = "Data Source = (local); Initial Catalog =TechBrothersIT; " + "Integrated Security=true;";

System.IO.StreamReader SourceFile = new System.IO.StreamReader(SourceFolder+SourceFileName);

string line = "";
Int32 counter = 0;

SQLConnection.Open();

while ((line = SourceFile.ReadLine()) != null)
{
    //skip the header row
    if (counter > 0)
    {
        //prepare insert query
        string query = "Insert into " + TableName +
                       " Values ('" + line.Replace(filedelimiter, "','") + "')";

       //execute sqlcommand to insert record
       SqlCommand myCommand = new SqlCommand(query, SQLConnection);
       myCommand.ExecuteNonQuery();
   }

   counter++;
}

SourceFile.Close();
SQLConnection.Close();

//Move the file to Archive folder
File.Move(SourceFolder+SourceFileName, ArchiveFodler + SourceFileName);              

Solution 2:

J'ai initialement résolu cela avec une requête Excel:

Sub Transpone()
a = 1
   `enter code here` b = 8
    Do    ' Bucle externo.
    Do While Contador < 65000
        Contador = Contador + 1
        If Range("A" & a) <> "" Then
    Range("A" & a & ":A" & b).Select
    Selection.Copy
    Sheets("Converted").Select
    k = Range("A" & Cells.Rows.Count).End(xlUp).Row + 1
    `enter code here`Range("A" & k).Select
    `enter code here`Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Sheets("Identification").Select
    a = a + 8
    b = b + 8
        Else
    Comprobar = False
       Exit Do
        End If
       Loop
     Loop Until Comprobar = False
End Sub
0
marc_s 26 janv. 2017 à 05:47

Cela peut être fait très facilement dans SSIS. Le lien mentionné ci-dessous peut vous aider.

https://blogs.msdn.microsoft.com/philoj/2007/11/10/transposing-rows-and-columns-in-sql-server-integration-services/

0
Superr 27 janv. 2017 à 10:52

J'utilise une tâche de script SSIS, pour lire les lignes du fichier texte. Cela me permet de lire des groupes de 6 lignes par boucle. Les variables sont prises dans une tâche SQL qui contient une insertion. J'ai besoin d'aide car il insère toutes les lignes de texte sur la même ligne SQL, il n'ajoute pas, ci-dessous vous verrez l'insertion satement.

Public void Main () {

        SqlConnection conn = new SqlConnection("Data Source=DESKTOP-QBDQ35H; Initial Catalog=TensorFacts; Integrated Security=True");
        int counter = 0;

        System.IO.StreamReader file = new System.IO.StreamReader("C:\\Imagine processing\\output.txt");
        string[] large = System.IO.File.ReadAllLines("C:\\Imagine processing\\output.txt");
        for (int i = 0; i < large.Length; i += 6)

        {

            Dts.Variables["User::imageName"].Value = (string)large[i];
            Dts.Variables["User::bestGuess"].Value = (string)large[i + 1];
            Dts.Variables["User::secondGuess"].Value = (string)large[i + 2];
            Dts.Variables["User::thirdGuess"].Value = (string)large[i + 3];
            Dts.Variables["User::fourthGuess"].Value = (string)large[i + 4];
            Dts.Variables["User::fifthGuess"].Value = (string)large[i + 5];

            //string line0 = large[i];
            //string line1 = large[i + 1];
            //string line2 = large[i + 2];
            //string line3 = large[i + 3];
            //string line4 = large[i + 4];
            //string line5 = large[i + 5];


            //MessageBox.Show(line0 + '\n' + line1 + '\n' + line2 + '\n' + line3 + '\n' + line4 + '\n' + line5 + '\n');

            //counter++;
        }
    }  

PUIS DANS SSIS "EXECUTE SQL taks" INSÉRER DANS dbo.scores (imageName, bestGuess, firstScore, firsTag, secondGuess, secondScore, secondTag, troisièmeGuess, troisièmeScore, troisièmeTag, quatrièmeGuess, quatrièmeScore, quatrièmeTag, cinquièmeGuess, cinquièmeScore, cinquièmeTag) VALEURS (?, ?, 0,0,?, 0,0,?, 0,0,?, 0,0,?, 0,0)

0
Carlos 27 janv. 2017 à 23:51