0

こんにちは、みんな!プログラムで自分の画像や氏名などの情報を表示する際に問題があります。for ループ ラジオボタンがあり、特定の位置で何人の候補者が実行されているかをカウントします。例は「社長」です。

これが今の私のコードです:

    cmd = new SqlCommand("SELECT COUNT(Position) FROM TableVote WHERE Position='" + "President" + "'", sc);
            Int32 PresCount = (Int32)cmd.ExecuteScalar();

            TxtPresCount.Text = PresCount.ToString();

            //int lol = Convert.ToInt32(TxtPresCount.Text);

            var panel = new FlowLayoutPanel();
            panel.SuspendLayout();
            panel.Size = new Size(600, 150);
            panel.Location = new Point(50, 50);
            panel.FlowDirection = FlowDirection.LeftToRight;
            panel.AutoScroll = true;
            panel.WrapContents = false;
            this.Controls.Add(panel);

            for (int i = 0; i < PresCount; ++i)
            {
                var radioButton = new RadioButton();
                radioButton.Size = new Size(75, 75);
                radioButton.CheckAlign = ContentAlignment.MiddleCenter;
                radioButton.ImageAlign = ContentAlignment.MiddleCenter;
                panel.Controls.Add(radioButton);

                //radioButton.Image = Image.FromFile();
                radioButton.ImageAlign = ContentAlignment.MiddleCenter;
                radioButton.FlatStyle = FlatStyle.Flat;
            }
            panel.ResumeLayout();

上記のコードと同様に、データベースに保存されているすべての大統領をカウントします。しかし、私の問題は、データベースに保存されている画像/名前をどのように配置するのですか? 例 大統領候補が 5 人いるとします。すべてのデータを 5 つのラジオボタンに入れたいとします。ラジオボタンに情報を入力するにはどうすればよいですか? 助けてください。:(

以下のコードを使用して情報を追加します。

    sc.Open();
        try
        {
        cmd = new SqlCommand("INSERT INTO TableVote (Position, FirstName, MiddleName, LastName, YearLevel, Course, SchoolYear, imgPath, imgImage) VALUES (@position, @firstname, @middlename, @lastname, @yearlevel, @course, @schoolyear, @imgpath, '" + _pb + "')", sc);
        cmd.Parameters.AddWithValue("@position", _position);
        cmd.Parameters.AddWithValue("@firstname", _firstname);
        cmd.Parameters.AddWithValue("@middlename", _middlename);
        cmd.Parameters.AddWithValue("@lastname", _lastname);
        cmd.Parameters.AddWithValue("@yearlevel", _yearlevel);
        cmd.Parameters.AddWithValue("@course", _course);
        cmd.Parameters.AddWithValue("@schoolyear", _schoolyear);
        cmd.Parameters.AddWithValue("@imgpath", _imgpath);

            int res = cmd.ExecuteNonQuery();
            if(res > 0)
            {
                MessageBox.Show("Data Stored Successfully!");
                FAdminSet._cleardata = cleardata;
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        finally
        {
            sc.Close();
        }

これは私のデータベースです:

ここに画像の説明を入力

4

1 に答える 1

0
public partial class Form1 : Form {
   public Form1(){
     InitializeComponent();
     //do this if you want to register the Load event handler using code
     Load += Form1_Load;
   }
   FlowLayoutPanel panel = new FlowLayoutPanel();
   private void InitPanel(){
     panel.Size = new Size(600, 150);
     panel.Location = new Point(50, 50);
     panel.FlowDirection = FlowDirection.LeftToRight;
     panel.AutoScroll = true;
     panel.WrapContents = false;
     Controls.Add(panel);
   }
   //Load event handler
   private void Form1_Load(object sender, EventArgs e){
     InitPanel();
     panel.SuspendLayout();
     string cmdText = "SELECT (FirstName + ' ' + MiddleName + ' ' + LastName) as FullName, " +
                 "imgPath as ImagePath FROM TableVote WHERE Position='President'";
     using(SqlCommand com = new SqlCommand(cmdText,sc)){
       if(sc.State != ConnectionState.Open) sc.Open();
       SqlDataReader reader = com.ExecuteReader();       
       while(reader.Read()){
         AddRadioButton(reader.GetString(0), reader.GetString(1));
       }
       reader.Close();
       sc.Close();
       panel.ResumeLayout(true);
     }
   }
   private void AddRadioButton(string fullName, string imagePath){
     RadioButton radio = new RadioButton {Text = fullName, Parent = panel};
     radio.AutoSize = true;
     radio.Image = new Bitmap(Image.FromFile(imagePath),75,75);
     radio.TextImageRelation = TextImageRelation.ImageAboveText;    
     radio.CheckAlign = ContentAlignment.BottomCenter;   
   }
}

:テーブルに画像を含む2つの情報を保存していることがわかります。そのうちの1つを選択する必要があると思います。テーブルの保存Image Pathは簡単で軽量ですがImage path、実際の情報を指していないと情報が失われる可能性がありますもはやイメージ。

于 2013-10-12T09:37:19.870 に答える