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 多变是 浏览器的问题 有些动态格式图片 浏览器不支持 参考技术D 动态图片?是gif? 解释下概念

如何使用 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 如何显示动态图片的主要内容,如果未能解决你的问题,请参考以下文章

C# 如何动态更新DataGridView

C# 中datagridview中的如何给单元格设置滚动条,是单元格不是整个datagridview

C# DataGridView控件动态添加新行

求用c#在dataGridView中动态添加列的方法

C# Excel加载到datagridview显示

c#如何实现DataGridView翻页显示