sql >> データベース >  >> RDS >> Mysql

C#でMysqlDBに接続する-データセットでいくつか必要

    アプローチの間違いを修正するために従うべき簡単な例を次に示します。

    SQL関連

    drop table if exists users;
    create table users
    (
    user_id int unsigned not null auto_increment primary key,
    username varbinary(32) unique not null
    )
    engine=innodb;
    
    insert into users (username) values ('f00'),('bar');
    

    C#DataAdapterメソッド

    私はdb接続を明示的に開かないことに注意してください-DataAdpaterは私のためにそれを行います。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    // addded these
    using MySql.Data;
    using MySql.Data.MySqlClient;
    using System.Data;
    
    namespace mysql
    {
        class Program
        {
            static void Main(string[] args)
            {
                const string DB_CONN_STR = "Server=127.0.0.1;Uid=foo_dbo;Pwd=pass;Database=foo_db;";
    
                MySqlConnection cn = new MySqlConnection(DB_CONN_STR);
    
                try {
    
                    string sqlCmd = "select * from users order by user_id";
    
                    MySqlDataAdapter adr = new MySqlDataAdapter(sqlCmd, cn);
                    adr.SelectCommand.CommandType = CommandType.Text;
                    DataTable dt = new DataTable();
                    adr.Fill(dt); //opens and closes the DB connection automatically !! (fetches from pool)
    
                    foreach (DataRow dr in dt.Rows){
                        Console.WriteLine(string.Format("user_id = {0}", dr["user_id"].ToString()));
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("{oops - {0}", ex.Message);
                }
                finally
                {
                    cn.Dispose(); // return connection to pool
                }
                Console.WriteLine("press any key...");
                Console.ReadKey();
            }
        }
    }
    

    C#DataReaderの例

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    // addded these
    using MySql.Data;
    using MySql.Data.MySqlClient;
    using System.Data;
    
    namespace mysql
    {
        class Program
        {
            static void Main(string[] args)
            {
                const string DB_CONN_STR = "Server=127.0.0.1;Uid=foo_dbo;Pwd=pass;Database=foo_db;";
    
                MySqlConnection cn = new MySqlConnection(DB_CONN_STR);
    
                try {
    
                    string sqlCmd = "select * from users order by user_id";
    
                    cn.Open(); // have to explicitly open connection (fetches from pool)
    
                    MySqlCommand cmd = new MySqlCommand(sqlCmd, cn);
                    cmd.CommandType = CommandType.Text;
                    MySqlDataReader rdr = cmd.ExecuteReader();
    
                    while (rdr.Read()){
                        Console.WriteLine(string.Format("user_id = {0}", rdr["user_id"].ToString()));   
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("{oops - {0}", ex.Message);
                }
                finally
                {
                    cn.Dispose(); // return connection to the pool
                }
                Console.WriteLine("press any key...");
                Console.ReadKey();
            }
        }
    }
    



    1. 最初の文字でアルファベット順にグループ化するのが最善の方法ですか?

    2. マネージドホスティングアカウントにphpMyAdminをインストールする方法

    3. 集計関数のないGROUPBY句の理由は何ですか?

    4. SQLステートメント-このクエリの逆を選択します