Bonjour,
Je travail sur l'automatisation d'une tache permettant d'extraire des données d'une base avant de les insérer dans une autre.
Pour cela j'ai crée une requête SQL ( avec curseurs ect ..) qui fonctionne parfaitement.
Ex une partie de la requête :
1 2 3 4 5 6 7 8
| SET @SQL = 'UPDATE glpi_users SET '
SET @SQL = @SQL + ' name =''' + @Name + ''', '
SET @SQL = @SQL + ' realname =''' + REPLACE(@RealName,'''','''''') + ''', '
SET @SQL = @SQL + ' mobile =''' + @Mobile + ''', '
SET @SQL = @SQL + ' phone =''' + @Phone + ''', '
SET @SQL = @SQL + ' usertitles_Id =' + CAST(@UserTitleId as nvarchar(20))
SET @SQL = @SQL + ' WHERE Name = ''' + @Name + ''' ;'
PRINT @SQL |
qui donne comme resultat :
UPDATE glpi_users SET name ='****', realname ='*******', mobile ='', phone ='**** ', usertitles_Id =**** WHERE Name = '******' ;
Mon souhait est d’exécuter cette requête via mon application c# et d’insérer les résultats ( les requêtes générées ) dans un nouveau fichier SQL.
Mon problème est que je n'arrive pas à exécuter cette requête SQL
Systématiquement le SQLdataReader me renvoi 0 lignes.
Voici mon code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| try
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Navision"].ConnectionString);
conn.Open();
FileInfo file = new FileInfo(@"V:\DSI\*******l");
string query = file.OpenText().ReadToEnd();//.ReadToEnd();
Console.WriteLine(query);
// Console.ReadKey();
SqlCommand cmd = new SqlCommand(query, conn);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
while (dr.Read())
Console.WriteLine("\t{0}\t{1}", dr.GetString(0), dr.GetString(1));
else
Console.WriteLine("No rows returned.");
Console.ReadKey(); |
Si je remplace mon fichier sql par une requête simple de type Select c'est ok , mon SQLDataReader me retourne bien des résultats.
Pourriez vous m'aider ?
Le SQLDATAREADER est il viable dans mon cas ?
Cordialement
Partager