これは今私のコードです:
private static MySqlConnection conn = null;
private static MySqlDataAdapter AccountsDa = null;
private static MySqlCommandBuilder AccountsCb = null;
AccountsDa = new MySqlDataAdapter("SELECT * FROM accounts", conn);
AccountsCb = new MySqlCommandBuilder(AccountsDa);
Accounts = new DataTable();
AccountsDa.Fill(Accounts);
次のようにすれば、手動で行う必要なく、列のデフォルト値を定義する方法を見つけようとしています。
DataColumn col = new DataColumn();
col.ColumnName = "id";
col.AllowDBNull = false;
col.DataType = System.Type.GetType("System.Int32");
col.DefaultValue = 0;
Accounts.Columns.Add(col);
すべての列で正常に動作しますが、テーブルがいっぱいになったときにデータベースからデフォルト値を自動的に設定するにはどうすればよいですか。手動で 30 列を定義する必要がないことを願っています。
Accountsda.FillSchema(Accounts, SchemaType.Source); を試しました。null と自動インクリメントを許可しますが、デフォルト値は設定しません
後でデータテーブルに行を追加するときに問題が発生します.1つの列の値を設定するだけで、残りの列はデフォルト値に頼る必要がある場合があります。
行を挿入するためのデフォルト値を手動で定義するために 180 行のコードを配置できますが、データ テーブルを作成/入力するときにデータベースからそれを取得する方法が必要です。
これは、オンライン rts ゲームの専用サーバー用であるため、データがたとえば 2 分間しか存在せず、その後再び削除される場合があるため、インメモリ データ テーブルを使用しています。データベースにヒットを保存するために、データテーブルを使用してそれらを操作し、10分ごとにフラッシュして、おそらく40,000ヒットではなく、10分ごとにデータベースに1,000ヒットしかないようにします