2011-11-18 8 views
3

私は弟のための新しいウェブサイトを構築していると私は彼のためにMySqlを使用する必要があるようです。 ASP.NETでは Write Change MySqlテーブルasp.netのリストビュー

はありますが、DBの情報を取るされ、そこから選択することができ、リストビュー項目であるとすることができますReadbuttonをクリックするだけでDelete \ Change \ Write \。

ここで誰でも私はMySqlでこれを行うことができますか?そして、mssqlではなく。DataBasesを使用する方法を知っています。私は今までMySqlで作業していませんでした。私を助ける人には感謝しています。

もう一度おねがいします! alon .. :)

+0

では、mysqlタグを追加することもできます。 –

+0

あなたは私たちがasp.netでmysqlデータベースを使う方法を手伝ってほしいですか? – shalki

答えて

2

ここでは、mysqlデータベースの基本的な操作を行う一般的な方法を示します。私はあなたのmysqlデータベースを設定する方法を知っていると仮定します。そうでない場合は、Google上で多くの情報を見つけることができます。また、mysqlデータベースに "table"という名前のテーブルがあるとします。このテーブルには、id、name、addressという列があります。

 // Connection String 
    private const string ConnStr = 
    "Driver={MySQL ODBC 3.51 Driver};Server=localhost;" + 
    "Database=test;uid=root;pwd=;option=3"; 
    // DataBinding 

    private void BindDataGrid() 
    { 
     using(OdbcConnection con = new OdbcConnection(ConnStr)) 
     using(OdbcCommand cmd = 
     new OdbcCommand("SELECT * FROM Sample", con)) 
     { 
      con.Open(); 
      DataGrid1.DataSource = cmd.ExecuteReader(
       CommandBehavior.CloseConnection | 
       CommandBehavior.SingleResult); 
      DataGrid1.DataBind(); 
     } 
    } 


    // Insert Operation 
    private void InsertInfo() 
    { 
     if(CheckIsAddNameValid()) 
     { 
      HtmlTable2.Visible = false; 

      using(OdbcConnection con = new OdbcConnection(ConnStr)) 
      using(OdbcCommand cmd = new OdbcCommand("INSERT INTO sample" + 
          "(name, address) VALUES (?,?)", con)) 
      { 
       cmd.Parameters.Add("@name", OdbcType.VarChar, 
            255).Value = TextBox3.Text.Trim(); 
       cmd. Parameters.Add("@address", OdbcType.VarChar, 
            255).Value = TextBox4.Text.Trim(); 

       con.Open(); 
       cmd.ExecuteNonQuery(); 
       BindDataGrid(); 
      } 
     } 
    } 


    // Update Operation 
    private void UpdateInfo(int id, string name, string address) 
    { 
     using(OdbcConnection con = new OdbcConnection(ConnStr)) 
     using(OdbcCommand cmd = new OdbcCommand("UPDATE sample " + 
          "SET name = ?, address = ? WHERE ID = ?", con)) 
     { 
      cmd.Parameters.Add("@name", OdbcType.VarChar, 255).Value = name; 
      cmd.Parameters.Add("@address", 
        OdbcType.VarChar, 255).Value = address; 
      cmd.Parameters.Add("@ID", OdbcType.Int).Value = id; 

      con.Open(); 
      cmd.ExecuteNonQuery(); 
     } 
    } 

    // Update Operation 
    private void DeleteInfo(int id) 
    { 
     using(OdbcConnection con = new OdbcConnection(ConnStr)) 
     using(OdbcCommand cmd = new OdbcCommand("DELETE " + 
        "FROM sample WHERE ID = ?", con)) 
     { 
      cmd.Parameters.Add("@ID", OdbcType.Int).Value = id; 

      con.Open(); 
      cmd.ExecuteNonQuery(); 
     } 
    } 

あなたはこの例では、データベースを作成するには、このスクリプトを使用してデータベースのテーブルを持っていない場合:

CREATE TABLE sample ( 
    id   int AUTO_INCREMENT NOT NULL, 
    name  varchar(45) NOT NULL, 
    address varchar(45) NOT NULL, 
    PRIMARY KEY(id) 
) 
GO 

BindDataGrid機能は、データグリッド内のクエリの結果を示しています。一般的に、あなたがリストに任意のクエリの結果を配置し、次のコードとデータグリッドにバインドすることができます

List<string> AllStudents = getAllStudents(); 
dataGrid1.datasource = AllStudents; 
dataGrid1.databind(); 
+0

私はデータグリッドを表示する方法を理解していませんでした。 –

+0

私は自分の答えを編集しました最後の部分を確認してください。 –

8

あなたが最初のその後の代わりに使用して、あなたがhere

を見つけることができるコネクタを必要としますSystem.Dataクラスは今ダウンロードしたクラスを使用します。それらは同じクラスですが、唯一の違いはMySQL用であることです。

さらに、MySQLクエリを書く場合は、MSSQLとほぼ同じです。ここではいくつかの例は以下のとおりです。

読む:

SELECT id, value FROM table 
WHERE id = 16; 

書き込み:

INSERT INTO table(id, value) 
VALUES (1,'Bob'),(2,'Betty'); 

変更:

UPDATE table 
SET id = 7 
WHERE id = 16; 

を削除:

DELETE FROM table 
WHERE id = 7; 

そして、あなたのC#コードであなただけのデータベースで動作するように3-4のクラスを使用する必要があります。私はこれをテキストの壁にしたくないので、それらに慣れていない限り、これらのクラスの詳細についてはhereを読むことができます。

1

ASP.NetはProvider Modelを通じてデータベースと連携します。あなたはMySql用のADOconnectorをダウンロードしましたが、MySqlに固有の異なる一連のクエリを使用する必要がある点を除いて、MS SQLと同じように動作するはずです。

0

また、Entity Frameworkを調べることもできます。これは、オブジェクト・リレーショナル・マッパー(ORM)です。データベースの表をコードで簡単に処理できるオブジェクトに抽象化します。それは、(他の答えのいくつかが示唆しているように)SQL文字列をハードコードするよりも、コードをはるかに読みやすく保守しやすくします。

エンティティフレームワークはMicrosoftの推奨ソリューションです。 Bosak氏が指摘したMySQLコネクタで使用することができます。

NHibernateは、あなたが調べたいと思うかもしれない別のORMです。