0

Visual Studio c# を使用して SQL テーブルを作成し、そのフィールドを配列リストから取得したいと考えています。私の現在のコードは次のようになります。

    private void Create_Click(object sender, EventArgs e)
    {
        try
        {
            ArrayList flds = new ArrayList();
            flds.Add("test1");
            flds.Add("test2");
            conn.Open();
            cmd = new SqlCommand("CREATE TABLE [" + Tbname.Text + "] ([id] INT NULL, [name] CHAR (20) NULL, [" + flds + "] CHAR (20) NULL)", conn);
            cmd.ExecuteNonQuery();
            conn.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

更新:私がarraylistを使用する理由は、ユーザーがアプリを介してテーブルを作成できるようにする必要があり(私はそれが良い習慣ではないことを知っています)、フィールドの量が異なる場合があるためです。(アプリはユーザーからフィールド名を取得し、それらを配列リストまたはその他の機能するリストに格納してから、DB にテーブルを作成します。

ありがとう、リファット

4

2 に答える 2

1

あなたが何をしようとしているのかよくわかりません。ポイントが足りないのでコメントできません。しかし、配列でFOREACHを使用する必要があると思います...

参考までに...アプリケーションを介してテーブルを作成することは、通常、非常に難しいことです。通常、既存のテーブルにデータを挿入します。

このように見えるはずです...

private void Create_Click(object sender, EventArgs e)
{
    try
    {
        ArrayList flds = new ArrayList();
        flds.Add("test1");
        flds.Add("test2");
        conn.Open();
Foreach Item in flds
{
        cmd = new SqlCommand("CREATE TABLE [" + Tbname.Text + "] ([id] INT NULL, [name] CHAR (20) NULL, [" + Item + "] CHAR (20) NULL)", conn);
        cmd.ExecuteNonQuery();
}
        conn.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
于 2013-10-10T18:39:39.530 に答える