. ブラックボックスはユーザーコントロールです。
ユーザー制御コード
string b = "";
public string ID
{
set { b = value; }
}
public void sample()
{
textBox1.Clear();
using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
{
myDatabaseConnection.Open();
using (SqlCommand SqlCommand = new SqlCommand("Select LastName, Image from Employee where ID = @a", myDatabaseConnection))
{
SqlCommand.Parameters.AddWithValue("@a", b);
DataSet DS = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(SqlCommand);
da.Fill(DS, "Images");
var imagesTable = DS.Tables["Images"];
var imagesRows = imagesTable.Rows;
var count = imagesRows.Count;
if (count <= 0)
return;
var imageColumnValue =
imagesRows[count - 1]["Image"];
if (imageColumnValue == DBNull.Value)
return;
var data = (Byte[])imageColumnValue;
using (var stream = new MemoryStream(data))
{
pictureBox1.Image = Image.FromStream(stream);
}
}
}
}
public void getname()
{
using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
{
myDatabaseConnection.Open();
using (SqlCommand SqlCommand = new SqlCommand("Select LastName from Employee where ID = @a", myDatabaseConnection))
using (SqlDataAdapter da = new SqlDataAdapter(SqlCommand))
{
SqlCommand.Parameters.AddWithValue("@a", b);
SqlDataReader DR1 = SqlCommand.ExecuteReader();
if (DR1.Read())
{
textBox1.Text = DR1.GetString(DR1.GetOrdinal("LastName")).ToString();
}
}
}
}
フォームコード
public string ID
{
get { return textBox1.Text; }
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
userControl21.ID = ID;
userControl21.sample();
userControl21.getname();
}
上記のコードを使用して、単一のレコードをユーザー コントロールに表示できます。データベース内のレコード数に基づいて、写真と名前を含むユーザーコントロールの数を表示するにはどうすればよいですか? たとえば、データベースに 7 つのレコードがあり、フォームには 7 つのユーザー コントロールが表示されます。また、ユーザーコントロールをクリックまたは選択すると、住所、連絡先などの詳細情報がフォームに表示されます。データベース内のレコードが多すぎてフォームに収まらない場合は、垂直または水平のスクロール バーが表示されます。コードを教えてください:)
スクロールバーを持つことができるユーザーコントロールを表示するのに最適なコンテナは何ですか? パネル、グループボックスか何か?
これはサンプル出力である必要があります。 .