2010-11-20 18 views
3

Ağdaki C# için birçok ODBC öğreticisini okudum ve bu kod bana hata vermeyen tek koddur. Ama sorun şu ki, hiçbir şey yapmıyor -... Nasıl düzeltilir?Veritabanı sorgusu C# çalışmıyor

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Windows.Forms; 
using System.Data.Odbc; 
using System.Data.Sql; 
namespace WindowsFormsApplication1 
{ 
    static class Program 
    { 
     /// <summary> 
     /// The main entry point for the application. 
     /// </summary> 
     [STAThread] 
     static void Main() 
     { 
     string connectionString = "Server=localhost;User  ID=root;Password=****;Database=testing;Port=3306;Pooling=false"; 
     MySql.Data.MySqlClient.MySqlConnection connection = new MySql.Data.MySqlClient.MySqlConnection(connectionString); 

     connection.Open(); 

     string insertQuery = "ALTER TABLE `user` ADD lol INT (15)"; 
     MySql.Data.MySqlClient.MySqlCommand myCommand = new MySql.Data.MySqlClient.MySqlCommand(insertQuery); 
     connection.Close(); 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new Form1()); 
    } 
} 
} 
+0

bakarak:

  • using uygun şekilde atılması ExecuteNonQuery()

Kodu ile komutu yürütmeden komutu en Connection

  • ayarı
  • sağlamak için bir şeyle çalışırken 'deyimi kullanarak 've' try/catch/finally' kullanarak DB bağlantıları olarak h. –

  • +0

    @Frederic - Thats çok yararlı değil. Demek istediği, VARCHAR (15) veya INT'yi kullanabilmekti. INT değil (15). Bu senin problemin olduğunu düşünmüyorum, çünkü bu bir istisna atardı. Sorun bundan önce olmalı. Kodunuzu hata ayıklama modunda atmayı denediniz mi? –

    +0

    @Ash, muhtemelen haklısınız. Bugün tahminen çok fazla tuhaf soru var. –

    cevap

    2

    Sen komutu çalıştırmak gerekir:

    myCommand.ExecuteNonQuery(); 
    
    +0

    Neden bir kereden fazla çalıştırılmasını istersiniz? –

    +0

    "Bağlantı geçerli ve açık olmalı" diyor şimdi – Marcus

    +0

    Komut nesnesine bağlantıyı iletmeniz gerekiyor. Ya kurucu veya mülk tarafından. –

    2

    düzenli beni izin vermeyi; önemli noktalar: Ben öneririm

    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 
    string connectionString = "Server=localhost;User ID=root;Password=****;Database=testing;Port=3306;Pooling=false"; 
    string insertQuery = "ALTER TABLE `user` ADD lol INT (15)"; 
    using(MySql.Data.MySqlClient.MySqlConnection connection = 
        new MySql.Data.MySqlClient.MySqlConnection(connectionString)) 
    using(MySql.Data.MySqlClient.MySqlCommand myCommand = 
        new MySql.Data.MySqlClient.MySqlCommand(insertQuery)) 
    { 
        myCommand.Connection = connection; 
        connection.Open(); 
        myCommand.ExecuteNonQuery(); 
        connection.Close(); 
    } 
    using(Form1 form1 = new Form1()) { 
        Application.Run(form1); 
    } 
    
    İlgili konular