C# 怎么将chart生成的图插入数据库?

2025-05-03 00:05:16
推荐回答(3个)
回答1:

你可以把图片存入一个流里面再读到一个字节数组,然后再存入数据库:
Image img = Image.FromFile("pic1.gif");
MemoryStream ms = new MemoryStream();

img.Save(ms, ImageFormat.Gif);

ms.Position = 0;
var buffer = new byte[ms.Length];

var readCount = 0;
while (readCount < ms.Length)
{
var readed = ms.Read(buffer, readCount, (int)Math.Min(1024, ms.Length - readCount ));
readCount += readed;
}
这样buffer就包含改图片了。至于存数据库我想你肯定会吧。

回答2:

没有什么好的详细教程,给你简单点的,
简单示例,













后台代码:

protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = default(DataTable);
dt = CreateDataTable();

//设置图表的数据源
Chart1.DataSource = dt;

//设置图表Y轴对应项
Chart1.Series[0].YValueMembers = "Volume1";
Chart1.Series[1].YValueMembers = "Volume2";

//设置图表X轴对应项
Chart1.Series[0].XValueMember = "Date";

//绑定数据
Chart1.DataBind();
}
private DataTable CreateDataTable()
{
//Create a DataTable as the data source of the Chart control
DataTable dt = new DataTable();

//Add three columns to the DataTable
dt.Columns.Add("Date");
dt.Columns.Add("Volume1");
dt.Columns.Add("Volume2");

DataRow dr;

//Add rows to the table which contains some random data for demonstration
dr = dt.NewRow();
dr["Date"] = "Jan";
dr["Volume1"] = 3731;
dr["Volume2"] = 4101;
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["Date"] = "Feb";
dr["Volume1"] = 6024;
dr["Volume2"] = 4324;
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["Date"] = "Mar";
dr["Volume1"] = 4935;
dr["Volume2"] = 2935;
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["Date"] = "Apr";
dr["Volume1"] = 4466;
dr["Volume2"] = 5644;
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["Date"] = "May";
dr["Volume1"] = 5117;
dr["Volume2"] = 5671;
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["Date"] = "Jun";
dr["Volume1"] = 3546;
dr["Volume2"] = 4646;
dt.Rows.Add(dr);

return dt;
}

回答3:

图表->网页->WebBrowser截图->处理截图->流->数据库 搞定