2010-11-20 15 views
0

こんにちは私はC#の列と行を読み込むコードが必要です。C#で列と行を読み取る方法は?

私はこれまでのところ来ている:助けを

obj.MysqlQUERY("SELECT * FROM `players` WHERE name = "+name+";"); // my query function 

グレイトフル;]

+2

まず、[SQL Injection attacks](http://en.wikipedia.org/wiki/SQL_injection)に見えます。クエリをパラメータ化する必要があります。第二に、 'obj'とは何ですか?どこから来ていますか? – Oded

+0

あなたの質問は理解できません。そして、いずれの場合でも、SQLへの入力を連結することに注意してください。これはSQLインジェクションを必要とします。 –

+1

あなたはどのフレームワークまたはコネクタを使用していますか? –

答えて

5

は、ここで私はたくさんのMySQLで使用したコードの標準ブロックです。使用可能なMySqlコネクタはhereである必要があります。

string myName = "Foo Bar"; 
using (MySqlConnection conn = new MySqlConnection("your connection string here")) 
{ 
    using (MySqlCommand cmd = conn.CreateCommand()) 
    { 
     conn.Open(); 
     cmd.CommandText = @"SELECT * FROM players WHERE name = ?Name;"; 
     cmd.Parameters.AddWithValue("Name", myName); 
     MySqlDataReader Reader = cmd.ExecuteReader(); 
     if (!Reader.HasRows) return; 
     while (Reader.Read()) 
     { 
      Console.WriteLine(GetDBString("column1", Reader); 
      Console.WriteLine(GetDBString("column2", Reader); 
     } 
     Reader.Close(); 
     conn.Close(); 
    } 
} 

private string GetDBString(string SqlFieldName, MySqlDataReader Reader) 
{ 
    return Reader[SqlFieldName].Equals(DBNull.Value) ? String.Empty : Reader.GetString(SqlFieldName); 
} 

データベース値がnullの場合、特定の値を返すメソッドを使用しています。あなたは

1

はまた、あなたが使用できるなど、創造的な取得と、さまざまな戻り値を提供したり、NULL可能なタイプを組み込むことができます。

、独自のdataTableを作成します。読者が終わりに達すると、あなたはカスタム作成されたdatatableと、あなた自身でカスタムが作成されます。

DataTable dt = new DataTable(); 

dt.Columns.Add("Id",typeof(int)); 

dt.Columns.Add("Name",typeof(string)); 

dt.Columns.Add("BlaBla",typeof(string)); 

dt.AcceptChanges(); 

// Your DB Connection codes. 

while(dr.Read()) 

{ 
object[] row = new object[]() 

{ 
dr[0].ToString(),// ROW 1 COLUMN 0 

dr[1].ToString(),// ROW 1 COLUMN 1 

dr[2].ToString(),// ROW 1 COLUMN 2 

} 

dt.Rows.Add(row); 

} 
関連する問題