private int WriteToDB(string strName, string strType, ref byte[] Buffer) { int nFileID = 0; // Create connection OleDbConnection dbConn = new OleDbConnection(GetConnectionString()); // Create Adapter OleDbDataAdapter dbAdapt = new OleDbDataAdapter("SELECT * FROM tblFile", dbConn); // We need this to get an ID back from the database dbAdapt.MissingSchemaAction = MissingSchemaAction.AddWithKey; // Create and initialize CommandBuilder OleDbCommandBuilder dbCB = new OleDbCommandBuilder(dbAdapt); // Open Connection dbConn.Open(); // New DataSet DataSet dbSet = new DataSet(); // Populate DataSet with data dbAdapt.Fill(dbSet, "tblFile"); // Get reference to our table DataTable dbTable = dbSet.Tables["tblFile"]; // Create new row DataRow dbRow = dbTable.NewRow(); // Store data in the row dbRow["FileName"] = strName; dbRow["FileSize"] = Buffer.Length; dbRow["ContentType"] = strType; dbRow["FileData"] = Buffer; // Add row back to table dbTable.Rows.Add(dbRow); // Update data source dbAdapt.Update(dbSet, "tblFile"); // Get newFileID if( !dbRow.IsNull("FileID") ) nFileID = (int)dbRow["FileID"]; // Close connection dbConn.Close(); // Return FileID return nFileID; } 写入库。 private void ShowTheFile(int FileID) { // Define SQL select statement string SQL = "SELECT FileSize, FileData, ContentType FROM tblFile WHERE FileID = " + FileID.ToString(); // Create Connection object OleDbConnection dbConn = new OleDbConnection(GetConnectionString()); // Create Command Object OleDbCommand dbComm = new OleDbCommand(SQL, dbConn); // Open Connection dbConn.Open(); // Execute command and receive DataReader OleDbDataRea
B. sql数据库怎么导入word文档
一、准备工作
首先请确认服务端已经安装了Office Word(以下将以Office XP为例),操作系统为win2000或XP,并且已配置好.NET的运行环境及安装VS.NET C#开发环境后,我们就可以打开VS.NET,并新建一个Visual C#项目ASP.NET Web应用程序,位置为“”。(如图一)
二、引用Word对象库文件
要操作Word,我们就需要Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB),通常安装了Office Word后,你就可以在office安装目录的Office10文件夹下面找到这个文件,当我们将这个文件引入到项目后,我们就可以在源码中使用各种操作函数来操作Word。具体做法是打开菜单栏中的项目添加引用浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的!
三、Webform1.aspx.cs代码
完成添加引用后,MSWORD.OLB已经转化为相关DLL文件并放置于项目的BIN目录下了,这样我们只需在源码中创建该对象,并使用word库文件内置的操作函数即可轻松实现操作Word,Webform1.aspx.cs源码请参见
五、web.config设置
web.config文件还需添加一句 identity impersonate="true"/以启用模拟身份,因为默认ASPNET这个用户是没有权限访问Word.ApplicationClass(),当启用模拟身份后所有页面将会使用匿名Internet用户帐户(IUSR_machinename)这个用户名的权限执行,这样我们就能成功访问Word.ApplicationClass()并在ASP.NET中操作Word!
//传文档所在路径返回文档内容
publicstringDoc2Text(stringdocFileName)
{
//实例化COM
Microsoft.Office.Interop.Word.ApplicationClasswordApp=newMicrosoft.Office.Interop.Word.ApplicationClass();
objectfileobj=docFileName;
objectnullobj=System.Reflection.Missing.Value;
//打开指定文件(不同版本的COM参数个数有差异,一般而言除第一个外都用nullobj就行了)
Microsoft.Office.Interop.Word.Documentdoc=wordApp.Documents.Open(reffileobj,refnullobj,refnullobj,
refnullobj,refnullobj,refnullobj,
refnullobj,refnullobj,refnullobj,
refnullobj,refnullobj,refnullobj,refnullobj,refnullobj,refnullobj,refnullobj
);
//取得doc文件中的文本
stringoutText=doc.Content.Text;
//关闭文件
doc.Close(refnullobj,refnullobj,refnullobj);
//关闭COM
wordApp.Quit(refnullobj,refnullobj,refnullobj);
//返回
returnoutText;
}
在读取的时候会有损坏的文件 和被加密的文件等问题 总之C#和office的兼容性不太好
别忘了要引用word的dll
引用文件夹 右键添加引用 在组件里找Microsoft.Office.Interop.Word
读出了word文档再把它写入sqlserver数据库就可以了.
C. 微信公众平台怎么将收到的消息往数据库里边传
java">///<summary>
///接收用户消息
///iftrue
///2014-07-08
///</summary>
publicclassReceive
{
publicdelegateModels.Send_Msgdelegate_SendMsg(stringmsgType);
publicdelegatevoiddelegate_RececiveHandler(Models.Receive_Msgmodel,refstringmsg);
///<summary>
///获取消息对象并且回复消息(需要根据强制转换成需要的实体类)
///</summary>
///<paramname="context">上下文</param>
///<paramname="getSendMsg">获取回复消息的方法</param>
///<paramname="receiveHandler">处理接收消息的方法(如:持久化数据库)</param>
///<paramname="msg">错误信息</param>
///<returns></returns>
publicModels.Receive_MsgGetReceiveMsgAndReply(HttpContextcontext,delegate_SendMsggetSendMsg,delegate_RececiveHandlerreceiveHandler,refstringmsg)
{
if(context==null)
returnnull;
try
{
string_xml=newHttpHelper().PostInput(context.Request);
if(string.IsNullOrEmpty(_xml))
returnnull;
XmlDocumentdoc=newXmlDocument();
doc.LoadXml(_xml);
XmlElementelement=doc.DocumentElement;
Models.Receive_Msgmodel=GetReceiveModel(element);
//发送被动响应消息
Models.Send_MsgsendModel=getSendMsg(model.MsgType);
if(sendModel!=null)
{
sendModel.ToUserName=model.FromUserName;
sendModel.FromUserName=model.ToUserName;
Sendsend=newSend();
stringstrSend=send.Send_Msg<Models.Send_Msg>(sendModel,refmsg);
if(!string.IsNullOrEmpty(strSend))
{
context.Response.Output.Write(strSend);
}
}
//调用消息处理方法
try
{
receiveHandler(model,refmsg);
}
catch(Exceptionex)
{
msg="receiveHandler异常:"+ex.Message;
}
returnmodel;
}
catch(Exceptionex)
{
msg=ex.Message;
returnnull;
}
}
///<summary>
///获取消息对象直接回复空串(需要根据MsgType强制转换成需要的实体类)
///</summary>
///<paramname="context">上下文</param>
///<paramname="getSendMsg">获取回复消息的方法</param>
///<paramname="receiveHandler">处理接收消息的方法(如:持久化数据库)</param>
///<paramname="msg">错误信息</param>
///<returns></returns>
publicModels.Receive_MsgGetReceiveMsg(HttpContextcontext,delegate_RececiveHandlerreceiveHandler,refstringmsg)
{
if(context==null)
returnnull;
try
{
//直接回复空串,避免腾讯重复发送
context.Response.Output.Write("");
string_xml=newHttpHelper().PostInput(context.Request);
if(string.IsNullOrEmpty(_xml))
returnnull;
XmlDocumentdoc=newXmlDocument();
doc.LoadXml(_xml);
XmlElementelement=doc.DocumentElement;
Models.Receive_Msgmodel=GetReceiveModel(element);
//调用消息处理方法
try
{
receiveHandler(model,refmsg);
}
catch(Exceptionex)
{
msg="receiveHandler异常:"+ex.Message;
}
returnmodel;
}
catch(Exceptionex)
{
msg=ex.Message;
returnnull;
}
}
///<summary>
///解析XML,转换为实体
///</summary>
///<paramname="element"></param>
///<returns></returns>
privateModels.Receive_MsgGetReceiveModel(XmlElementelement)
{
Models.Receive_Msgmodel=null;
stringmsgType=element.SelectSingleNode("MsgType").InnerText;
switch(msgType)
{
caseMsgType.text:model=newModels.Receive_Text();break;
caseMsgType.image:model=newModels.Receive_Image();break;
caseMsgType.voice:model=newModels.Receive_Voice();break;
caseMsgType.video:model=newModels.Receive_Video();break;
caseMsgType.location:model=newModels.Receive_Location();break;
caseMsgType.link:model=newModels.Receive_Link();break;
caseMsgType.events:model=GetEventModel(element.SelectSingleNode("Event").InnerText,element.SelectSingleNode("EventKey")==null?"":element.SelectSingleNode("EventKey").InnerText);break;
}
try
{
foreach(System.Reflection.PropertyInfopinmodel.GetType().GetProperties())
{
if(p.Name!="Xml")
{
p.SetValue(model,element.SelectSingleNode(p.Name).InnerText,null);
}
else
{
p.SetValue(model,element.OuterXml,null);
}
}
}
catch(Exceptionex)
{
throwex;
}
returnmodel;
}
///<summary>
///获取事件对象
///</summary>
///<paramname="evt">事件类型</param>
///<paramname="eventKey">事件KEY值</param>
///<returns></returns>
privateModels.Receive_MsgGetEventModel(stringevt,stringeventKey)
{
Models.Receive_Msgmodel=null;
switch(evt)
{
caseEvent.subscribe:
if(string.IsNullOrEmpty(eventKey))
{
model=newModels.Receive_Event();
}
else
{
model=newModels.Receive_Event_Scan();
}
break;
caseEvent.unsubscribe:
model=newModels.Receive_Event();
break;
caseEvent.scan:
model=newModels.Receive_Event_Scan();
break;
caseEvent.location:
model=newModels.Receive_Event_Location();
break;
caseEvent.click:
model=newModels.Receive_Event_Click();
break;
caseEvent.view:
model=newModels.Receive_Event_View();
break;
}
returnmodel;
}
}