2016-05-01 29 views
-1

データベースにボタンのプロパティを保存しました。フォームを開くときに、このプロパティを持つボタンを作成したいと思います。 私はそのようなことをしようとしています。しかし、私は結果がありません。 私はそれ以外の何かを使うべきですか?Sqlから動的ボタンを作成

SqlCommand command = new SqlCommand("select * from button_properties", con); 
con.Open(); 
SqlDataReader read = command.ExecuteReader(); 
Button dynamicButton = new Button(); 

dynamicButton.Height = (read["height"].ToString()); 
dynamicButton.Width = (read["width"].ToString()); 
dynamicButton.Text = (read["text"].ToString()); 
dynamicButton.Name = (read["name"].ToString()); 
dynamicButton.Location = new Point(20, 150); 

Controls.Add(dynamicButton); 

read.Close(); 
+0

"結果がありません"とはどういう意味ですか? – OldProgrammer

+0

それは何も作成しません – DmO

+0

問題を解決済みとマークするには、あなたの質問を解決した回答の左側にある緑色のチェックマークをクリックしてください。タイトルに「解決済み」を入れても、UIで解決されたような問題は表示されません。 –

答えて

1

あなたは、DataReaderを使用した場合、またSqlDataReaderSqlConnectionのようなものが本当にusingステートメント内にある必要があり、少なくとも一度.Read()を呼び出す必要があります。

SqlCommand command = new SqlCommand("select * from button_properties", con); 
con.Open(); 
using(SqlDataReader read = command.ExecuteReader()) 
{ 
    while(read.Read()) 
    { 
     Button dynamicButton = new Button(); 

     dynamicButton.Height = (int)read["height"]; 
     dynamicButton.Width = (int)read["width"]; 
     dynamicButton.Text = read["text"].ToString(); 
     dynamicButton.Name = read["name"].ToString(); 
     dynamicButton.Location = new Point(20, 150); 

     Controls.Add(dynamicButton); 
    } 
} 

このコードでは、行あたりのボタンがbutton_propertiesに追加されます。

+0

ありがとうございます。しかし、高さと幅は暗黙のうちに 'string'を 'int'に変換することはできません – DmO

+1

このエラーは投稿されたコードでは大変でしたか? – TaW

+0

ありがとうございました。私はそれを解決しました。私はConvert.ToInt32を使うだけで、うまくいきました!私の唯一の質問は、これを試している場所のイムでこの作業をどのように行うのかです:dynamicButton.Location = new Point(Convert.ToInt32(read ["location"]。ToString())); – DmO

関連する問題