日期:2014-05-16  浏览次数:20723 次

求教!数据库image类型字段的写入与读取及作图
提供了一个文本文档,里面是double型的点坐标,现在想用C#将这些坐标写入数据库的一个image类型字段中,然后从该字段读取坐标画线,可总是出现错误“System.Data.SqlClient.SqlCommand”不包含“ExcuteNonQuery”的定义,并且找不到可接受类型为“System.Data.SqlClient.SqlCommand”的第一个参数的扩展方法“ExcuteNonQuery”(是否缺少 using 指令或程序集引用?)       新手上路,该咋办???还有读取的时候怎么坐标画线呢???
------解决方案--------------------
至于数据库的操作问题,我就不答复你了,因为我对那方面没有兴趣,而且你的描述太过简单。

关于数据存储,几个思路,首先,你要决策你是要将坐标点数据存入库里,还是要将画好的图存到库里。
个人偏向你存点,以后想改点的数据(比如加了新的点或者减少)都很容易,既然你有文本文件来存放这些点了,那么你可以直接将这个文本文件的内容存入一个比方说text字段,当然,更美妙的做法是做一个从表,在从表里以每个点的坐标为记录。这样就更方便查询和修改了。

关于画图,无论你的存储方式如何,都逃不掉将点画到图上,
简单代码如下

Image img = new Bitmap(400, 200); //定义一张图,或者你可以加载一张现有的图,比如地图。
Graphics g = Graphics.FromImage(img); //获取Graphics对象,画图就靠它了。
g.Clear(Color.FromArgb(255, Color.FromArgb(0x476100))); //这个如果是加载已有的图,就去掉了吧,画个背景色而已。
PointF[] points = new PointF[cellCount]; // 这里定义你的坐标点数据,用你的数据代替
g.DrawLines(new Pen(Color.Red, 0.8f), points); // 这里开始画线,这里画线的顺序是根据点数组的索引顺序来的,所以有需要的话,你还要在此之前对points进行排序。
g.Flush();
g.Dispose();
img.Save(@"E:\Temp\tmp.jpeg");

完活~