2014-09-03 2 views
0

Ну я пытаюсь получить результаты из этой команды она должна вернуть что-то ложь (X) строк влияет команд успешно завершено печати Заявление здесьMultiple запрос в одну команду один Результат

Я не знаю, как чтобы получить эти результаты в richtextbox..so, если кто-то там может помочь мне, что это было бы круто

sqlconn.cnn = new SqlConnection("Data Source=.\\SQLEXPRESS" + ";Initial Catalog=" + shard.Text + ";User ID=" + textBox3.Text + ";Password=" + textBox4.Text); 
sqlconn.cnn.Open(); 
SqlCommand cmd = new SqlCommand("DELETE FROM _SiegeFortress Where FortressID LIKE'%[1,3,6]%' INSERT INTO _SiegeFortress (FortressID,GuildID,TaxRatio,Tax,NPCHired,TempGuildID,Introduction,CreatedDungeonTime,CreatedDungeonCount,IntroductionModificationPermission) VALUES (1 ,0 ,0 ,0 ,0 ,0 ,NULL ,NULL ,0 ,1) INSERT INTO _SiegeFortress (FortressID,GuildID,TaxRatio,Tax,NPCHired,TempGuildID,Introduction,CreatedDungeonTime,CreatedDungeonCount,IntroductionModificationPermission) VALUES (3 ,0 ,0 ,0 ,0 ,0 ,NULL ,NULL ,0 ,1) INSERT INTO _SiegeFortress (FortressID,GuildID,TaxRatio,Tax,NPCHired,TempGuildID,Introduction,CreatedDungeonTime,CreatedDungeonCount,IntroductionModificationPermission) VALUES (6 ,0 ,0 ,0 ,0 ,0 ,NULL ,NULL ,0 ,1) PRINT 'fewfwef'", sqlconn.cnn); 
cmd.Connection = sqlconn.cnn; 
SqlDataReader crap; 

     try 
     { 
      crap = cmd.ExecuteReader(); 
      crap.Close(); 
      MessageBox.Show("Crap"); 
      SqlDataReader name = cmd.ExecuteReader(); 

      richTextBox1.Text = name.ToString(); 
      name.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 

ответ

1

Ваш DELETE запрос не возвращает никаких данных. Нет смысла использовать ExecuteReader с заявлением DELETE.

Вам необходимо использовать ExecuteNonQuery вместо ExecuteReader.

От documentation;

Для UPDATE, INSERT и DELETE заявления, возвращаемое значение является число строк, затронутых командой.

использовать также using statement распоряжаться вашей SqlConnection и SqlCommand.

using(SqlConnection sqlconn = new SqlConnection(ConnectionString)) 
using(SqlCommand cmd = conn.CreateCommand()) 
{ 
    sqlconn.Open(); 
    richTextBox1.Text = string.Format("{0} rows affected", 
             (string)cmd.ExecuteNonQuery()); 
} 
+0

есть в заявлении вставки/печать – ex0ff

+0

и, когда я использую ExecuteNonQuery он возвращает INT – ex0ff

+0

@KhaledMohamed Что такое 'print' заявление? o.O Да 'ExecuteNonQuery' возвращает' int', и вы можете использовать его для 'string', как я. –

Смежные вопросы