2012-05-03 10 views

答えて

2

このように、あなたがのために多くの作業を行うには、コマンドビルダーを使用している、あなたは、単にデータベースのテーブルの上に直接実行するinsertコマンドに上記のコードを変換することができますOKです。

FbConnection fbCon = new FbConnection(csb.ToString()); 
    FbCommand fbCom = new FbCommand("INSERT INTO players(ID,name,score) VALUES (@id,@name,@score)", fbCon); 
    fbCom.Parameters.AddWithValue("id", zID + 1); 
    fbCom.Parameters.AddWithValue("name", var); 
    fbCom.Parameters.AddWithValue("score", score); 
    fbCom.ExecuteNonQuery(); 

でコマンドビルダーを回避したDataTableにデータをロードするこの方法は、非常に高速です...

+0

ok、addisional question、魔法の方が、データがすでにDBに存在するかどうかをチェックしたいのですが?私の例では 私はそれを作る方法を知っています。 あなたの存在を確認する方法は? – Bublik

0

これは、データベースの軽いです:

については
 FbConnectionStringBuilder csb = new FbConnectionStringBuilder(); 
     csb.ServerType = FbServerType.Default; 
     csb.Database = Settings.Default.LastBDPath; 
     csb.Password = Settings.Default.LastBDPassword; //   "masterkey"; 
     csb.UserID = Settings.Default.LastBDUser;  //   "SYSDBA"; 
     connection = new FbConnection(csb.ToString()); 

     connection.Open(); 

     string scriptLine = string.Format("INSERT INTO TABLE (Id, Name, Score) values ({0}, '{1}', {2}", zId+1, var, score) ; 
     FBCommand command = new FbCommand(scriptline, connection); 
     command.ExecuteNonQuery(); 

選択:

string sql = string.Format("select * from table where name='{0}';", your_name); 

FbCommand command = new FbCommand(sql), connection); 
FbDataReader reader = command.ExecuteReader(); 
while (reader.Read()) 
{ 
    for (int i=0; i<reader.FieldCount; i++) 
    { 
     objects[i].Add(reader.GetValue(i)); 
    } 
} 
+0

ああ、thnx、値がDBに存在するかどうかをチェックするメソッドはありますか? – Bublik

+0

もちろん、読者が存在する行を返す場合はSQL SELECTを使用する必要があります – Blau

関連する問題