2010-11-20 9 views
3

私はネット上でC#のための多くのODBCチュートリアルを読んできましたが、このコードは私にエラーを与えなかった唯一のものです。しかし問題は、何もしないことです.-どのように修正するのですか?あなたは、コマンドを実行する必要がありデータベースクエリC#が動作しない

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

私は見てお勧めしたいです'using Statement'と' try/catch/finally'を使って何かを操作するときhをDB接続として使用します。 –

+0

@Frederic - それほど役に立ちません。彼はVARCHAR(15)かINTを使うことができたと言っていました。 INTではない(15)。私はそれが例外をスローするのであなたの問題だとは思わない。問題はその前になければなりません。デバッグモードでコードをステップ実行しようとしましたか? –

+0

@Ash、あなたはおそらく正しいでしょう。今日はあまりにも多くの奇妙な質問があります。 –

答えて

2

myCommand.ExecuteNonQuery(); 
+0

なぜ1回以上実行する必要がありますか? –

+0

"接続は有効でオープンでなければなりません"というメッセージが表示されます – Marcus

+0

Commandオブジェクトへの接続を渡す必要があります。コンストラクタまたはプロパティのいずれか。 –

2

は私が整理することを許可します。重要なポイント:

  • usingExecuteNonQuery()

コードを使用してコマンドを実行するコマンドのConnection

  • を設定
  • 適切な処分を確保するために:

    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); 
    } 
    
  • 関連する問題