用过条码打印软件的小伙伴都知道软件多种数据库类型,比如TXT、Excel,MySQL,Access,SQLServer,MySQL,Oracle,CSV,Sybase,DB2,SQLite,DBF,ODBC,Socket等等,可以实现连接数据库批量制作打印各种标签,条码二维码的工作,今天就给大家详细介绍一下如何连接数据库,以Excel数据源为例!在条码打印软件数据库设置中添加一个Excel数据源。
添加Excel数据源后,会d出一个“Excel数据源管理”窗口,然后点“浏览”按钮添加Excel文件,“编码”一般选默认的不需要修改,“首行含列名”可以根据自己Excel表判定是否勾选,若Excel表首行是列名称就勾选,如首行是数据不需要勾选。然后点“测试连接”。
测试连接后可以看到Excel表的相关信息,选择需要连接的“表”,“字段”默认是全选(浅蓝色是选中状态),若是此时直接点“添加”按钮,说明条码打印软件连接Excel表中的所有列数据。那么在添加对象的时候(文字,条码二维码,图片等等),数据库导入对应的“字段”即可。
若是自己手动点了一下“Excel数据源管理”窗口中的字段,就出现全选取消的情况,导致只选中了点的字段,那么添加后,会只有这一列数据,Excel表中其他列数据无法调用。
若是不想全部导入,只想只导入某些字段(如导入设备名称和设备编号这两个字段),可以利用键盘上的“Ctrl”键进行部分选中, *** 作方法:按着Ctrl键,鼠标点击对应的字段。那么导入的时候就会只有选中的这两个字段。
“数据过滤”是对Excel表中的数据进行过滤后再导入,“所有”是全部导入,“范围”是只导入所选的范围数据(如设置1-3是只导入前三个数据,2-3就是导入第二个和第三个数据)。“SQL”是利用SQL语句对数据进行筛选导入(如成绩筛选打印,倒序打印Excel数据),这里就不详细叙述了,可以在中琅网站查询相关教程,“样本数据”显示的是首条数据,仅做参考使用。
java基本上可以任何数据库进行连接,比如:mysql,sqlserver,oracle等,只是连接的方式,驱动不同罢了。存图片的问题:一般来讲都是存的路径,如果你非要存图片也能存,需要把图片转换成二进制字节,进行存储。
如果强调安全,存二进制。
如果强调方便,存路径。
都可以的,至于怎么实现,建议你多去www.csdn.net看看吧,里面有很多高手,他们会教你的。access是可以存储图片的,不是存储网址,至于如何用C#向ACCESS数据库插入图片?给你个例子,你慢慢研究一下吧,不过这样例子的版本是VS2003,不过是差不多的。
-------------------------------------
<%@ Page language="c#" Debug="true" Codebehind="Image2Access.aspx.cs" AutoEventWireup="false" Inherits="eMeng.Exam.Image2Access" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>上传文件到 Access 数据库</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="DataGridShowImage" method="post" runat="server" enctype="multipart/form-data">
<h3 align="center">上传文件到 Access 数据库</h3>
<asp:DataGrid ID="DG_Persons" AutoGenerateColumns="False" Width="99%" HeaderStyle-BackColor="#ff0000"
HeaderStyle-Font-Bold="True" HeaderStyle-ForeColor="#ffffff" ItemStyle-BackColor="Beige" BorderColor="#000000"
Runat="server" HeaderStyle-HorizontalAlign="Center">
<Columns>
<asp:TemplateColumn HeaderText="姓名">
<ItemTemplate>
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonName") %>' ID="Label1"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="电子邮件">
<ItemTemplate>
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonEmail") %>' ID="Label2"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="性别">
<ItemTemplate>
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonSex") %>' ID="Label3"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="照片">
<ItemTemplate>
<asp:Image Runat=server ID="Image1" ImageUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem, "PersonID")) %>' />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
<b>文件名字:</b><input id="MyFileName" type="text" runat="server" NAME="MyFileName">
<P>
<b>文件:</b><input id="MyFile" type="file" runat="server" NAME="MyFile">
<br>
<br>
<input type="submit" value="开始上传" runat="server" ID="Submit1" NAME="Submit1">
</P>
</form>
</body>
</HTML>
----------------------------------------
using System
using System.Collections
using System.ComponentModel
using System.Data
using System.Data.OleDb
using System.Drawing
using System.Web
using System.IO
using System.Web.SessionState
using System.Web.UI
using System.Web.UI.WebControls
using System.Web.UI.HtmlControls
namespace eMeng.Exam
{
/// <summary>
/// Image2Access 的摘要说明。
/// </summary>
public class Image2Access : System.Web.UI.Page
{
protected System.Web.UI.HtmlControls.HtmlInputText MyFileName
protected System.Web.UI.HtmlControls.HtmlInputFile MyFile
protected System.Web.UI.HtmlControls.HtmlInputButton Submit1
protected System.Web.UI.WebControls.DataGrid DG_Persons
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
BindGrid()
}
private void BindGrid()
{
string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" +Server.MapPath("Image2Access.mdb")
OleDbConnection myConnection = new OleDbConnection(strCnn)
OleDbCommand myCommand = new OleDbCommand("SELECT * FROM Person", myConnection)
myCommand.CommandType = CommandType.Text
try
{
myConnection.Open()
DG_Persons.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
DG_Persons.DataBind()
}
catch(OleDbException SQLexc)
{
Response.Write("提取数据时出现错误:" + SQLexc.ToString())
}
}
protected string FormatURL(object strArgument)
{
return "ReadImage.aspx?id=" + strArgument.ToString()
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent()
base.OnInit(e)
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Submit1.ServerClick += new System.EventHandler(this.Submit1_ServerClick)
this.Load += new System.EventHandler(this.Page_Load)
}
#endregion
private void Submit1_ServerClick(object sender, System.EventArgs e)
{
//得到提交的文件
Stream fileDataStream = MyFile.PostedFile.InputStream
//得到文件大小
int fileLength = MyFile.PostedFile.ContentLength
//创建数组
byte[] fileData = new byte[fileLength]
//把文件流填充到数组
fileDataStream.Read(fileData,0,fileLength)
//得到文件名字
string fileTitle = MyFileName.Value
//得到文件类型
string fileType = MyFile.PostedFile.ContentType
//构建数据库连接,SQL语句,创建参数
string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" + Server.MapPath("Image2Access.mdb")
OleDbConnection myConnection = new OleDbConnection(strCnn)
OleDbCommand command = new OleDbCommand ("INSERT INTO Person (PersonName,PersonEmail,PersonSex,PersonImageType,PersonImage)" +
"VALUES (@PersonName,@PersonEmail,@PersonSex,@PersonImageType,@PersonImage)", myConnection)
System.Data.OleDb.OleDbParameter paramPersonName = new OleDbParameter("@PersonName", System.Data.OleDb.OleDbType.VarChar,50)
paramPersonName.Value = fileTitle
command.Parameters.Add(paramPersonName)
System.Data.OleDb.OleDbParameter paramPersonEmail = new OleDbParameter("@PersonEmail", System.Data.OleDb.OleDbType.VarChar,50)
paramPersonEmail.Value = "mengxianhui@dotnet.aspx.cc"
command.Parameters.Add(paramPersonEmail)
System.Data.OleDb.OleDbParameter paramPersonSex = new OleDbParameter("@paramPersonSex", System.Data.OleDb.OleDbType.VarChar,50)
paramPersonSex.Value = "男"
command.Parameters.Add(paramPersonSex)
System.Data.OleDb.OleDbParameter paramPersonImageType = new OleDbParameter("@PersonImageType", System.Data.OleDb.OleDbType.VarChar,50)
paramPersonImageType.Value = fileType
command.Parameters.Add(paramPersonImageType)
System.Data.OleDb.OleDbParameter paramPersonImage = new OleDbParameter("@PersonImage", System.Data.OleDb.OleDbType.Binary)
paramPersonImage.Value = fileData
command.Parameters.Add(paramPersonImage)
//打开连接,执行查询
myConnection.Open()
command.ExecuteNonQuery()
myConnection.Close()
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)