. 黑盒子是一个用户控件。
用户控制代码
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 个用户控件。当我单击或选择用户控件时,更多信息(例如地址、联系人等)将显示在我的表单中。如果数据库中的记录太多而无法放入表单中,则会出现垂直或水平滚动条。给我一些代码:)
显示可以具有滚动条的用户控件的最佳容器是什么?面板,组框或任何东西?
这必须是样本输出。 .