C# datagridview 如何显示动态图片
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# datagridview 如何显示动态图片相关的知识,希望对你有一定的参考价值。
C# datagridview 如何显示动态图片,注意是显示动态图片,我现在的问题是,添加进去一个动态图片后却不显示动态、是静止的。求代码,或解决方法!!!!急。。。
看你的说明,不知道我说的对不对。在html显示图片都是用<img src='路径'></img>来显示的。因为C#代码在编译完成之后,显示在页面上时显示的是html代码。这个时候datagridview 他会被编译成<table></table>在table里显示图片的地方肯定是<img>标签来展示你的这个动态图片 。如果你写的路径没问题,图片也在那个目录下存在的话 肯定是会出现的。
具体代码是这个样子
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<!--这个是服务器控件的引用图片的方法-->
<asp:Image ImageUrl="路径" runat="server" />
<!--这个是Html标签的引用图片的方法-->
<img src="路径" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
不知道你还会不会出问题 。如果还有问题可以直接M我QQ 179449057 参考技术A 这样应该可以,你试一下吧。
DataGridViewImageColumn column = new DataGridViewImageColumn();
column.Name = "Image";
column.ValuesAreIcons = false;
column.Image = new Bitmap("C:\\null.gif");
column.ImageLayout = DataGridViewImageCellLayout.Zoom;
column.Description = "图片";
DataGridView1.Columns.Add(column);
// 变更图片
DataGridView1["Image", 0].Value = new Bitmap("C:\\top.gif"); 参考技术B
请参考下列C# 代码:
private
void
Form2_Load(object
sender, EventArgs e)
//
01 如果图片存到数据库的Image字段类型中,用下面的方式直接绑定不需要转换
//
以 Northwind 的 Employees 表为例
//using
(SqlDataAdapter da = new SqlDataAdapter(
//
"SELECT EmployeeID,LastName,FirstName,BirthDate,Photo FROM
Employees",
//
"server=XXY;database=Northwind;Integrated
Security=SSPI"))
//
//
DataSet ds = new DataSet();
//
da.Fill(ds);
//
BindingSource bs = new BindingSource(ds.Tables[0],
null);
//
this.dataGridView1.DataSource = bs;
//
//
02 如果数据库中只是存到路径,可以在 Table 中动态添加 Image 类型字段,通过 Url 将图片下载下来,并保存到 Table
中
DataTable dt = new
DataTable();
dt.Columns.Add("Col1",
typeof(Int32));
dt.Columns.Add("Col2",
typeof(String));
dt.Rows.Add(new
object[]
1, "http://i4.social.microsoft.com/Image.avatr?size=ExtraLarge&user=X.X.Y&id=5b725d25-3d39-4379-9c1f-9c97efb4d4b0"
);
dt.Rows.Add(new
object[]
2, "http://i4.social.microsoft.com/Image.avatr?size=ExtraLarge&user=X.X.Y&id=5b725d25-3d39-4379-9c1f-9c97efb4d4b0"
);
//
增加一个字段将 url 转换为 image
dt.Columns.Add("Col3",
typeof(Image));
WebClient webClient = new
WebClient();
foreach
(DataRow row in
dt.Rows)
//
如果图片在本地,可不用下载直接使用
Image.FromFile
string
fileName = Path.Combine(@"C:\\",
Guid.NewGuid().ToString() + ".jpg");
webClient.DownloadFile(row["Col2"].ToString(),
fileName);
row["Col3"]
= Image.FromFile(fileName);
BindingSource bs = new
BindingSource(dt, null);
this.dataGridView1.DataSource
= bs;
如何使用 C# 在 datagridview 控件中显示某些表架构列?
【中文标题】如何使用 C# 在 datagridview 控件中显示某些表架构列?【英文标题】:How to display certain table schema columns in a datagridview control using C#? 【发布时间】:2015-06-24 14:26:41 【问题描述】:我有一种方法可以将 MS Access 表的整个架构显示到 datagridview 控件中。我如何才能在 datagridview 中仅显示列名和数据类型架构列。我正在使用的方法如下。谢谢你的建议。
private void ButtonFieldHelp_Click(object sender, EventArgs e)
char ch = '"';
dbConn = new OleDbConnection();
dbCmd = new OleDbCommand();
DataTable data;
OleDbDataReader reader;
dbConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ch + this.stringData + ch;
dbConn.Open();
dbCmd.Connection = dbConn;
dbCmd.CommandText = "SELECT * FROM " + this.comboBox.SelectedItem.ToString();
reader = dbCmd.ExecuteReader();
foreach (DataRow tableField in data.Rows)
foreach (DataColumn tableProperty in data.Columns)
dataGridView.DataSource = data;
this.txtRecords.Text = data.Rows.Count.ToString();
reader.Close();
dbConn.Close();
【问题讨论】:
【参考方案1】:这里是您的代码修改为使用 OleDbDataAdapter 按您的需要工作:
private void ButtonFieldHelp_Click(object sender, EventArgs e)
char ch = '"';
var dbConn = new OleDbConnection();
var dbCmd = new OleDbCommand();
DataTable data = new DataTable();
OleDbDataReader reader;
dbConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ch + this.stringData + ch;
dbConn.Open();
dbCmd.Connection = dbConn;
dbCmd.CommandText = "SELECT * FROM " + this.comboBox.SelectedItem.ToString();
//reader = dbCmd.ExecuteReader();
OleDbDataAdapter adapter = new OleDbDataAdapter(dbCmd);
adapter.Fill(data);
var dataTable = new DataTable();
dataTable.Columns.Add("ColumnName");
dataTable.Columns.Add("ColumnType");
foreach (DataColumn column in data.Columns)
dataTable.Rows.Add(column.ColumnName, column.DataType.ToString());
this.dataGridView1.DataSource = dataTable;
this.txtRecords.Text = data.Rows.Count.ToString();
dbConn.Close();
【讨论】:
以上是关于C# datagridview 如何显示动态图片的主要内容,如果未能解决你的问题,请参考以下文章