仿QQ聊天的代码。在打开聊天窗口并输入聊天内容执行发送时,程序报错:

问题描述

参数化查询'(@FromUserIdint,@ToUserIdint,@Messagenvarchar(1),@MessageType'需要参数'@MessageState',但未提供该参数。错误详细信息为:未处理System.Data.SqlClient.SqlExceptionMessage="参数化查询'(@FromUserIdint,@ToUserIdint,@Messagenvarchar(1),@MessageType'需要参数'@MessageState',但未提供该参数。"Source=".NetSqlClientDataProvider"ErrorCode=-2146232060Class=16LineNumber=0Number=8178Procedure=""Server="(local)"State=1StackTrace:在System.Data.SqlClient.SqlConnection.OnError(SqlExceptionexception,BooleanbreakConnection)在System.Data.SqlClient.SqlInternalConnection.OnError(SqlExceptionexception,BooleanbreakConnection)在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObjectstateObj)在System.Data.SqlClient.TdsParser.Run(RunBehaviorrunBehavior,SqlCommandcmdHandler,SqlDataReaderdataStream,BulkCopySimpleResultSetbulkCopyHandler,TdsParserStateObjectstateObj)在System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReaderds,RunBehaviorrunBehavior,StringresetOptionsString)在System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehaviorcmdBehavior,RunBehaviorrunBehavior,BooleanreturnStream,Booleanasync)在System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehaviorcmdBehavior,RunBehaviorrunBehavior,BooleanreturnStream,Stringmethod,DbAsyncResultresult)在System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResultresult,StringmethodName,BooleansendToPipe)在System.Data.SqlClient.SqlCommand.ExecuteNonQuery()在DAL.SqlHelper.ExecuteNonQuery(StringconnectionString,CommandTypecmdType,StringcmdText,SqlParameter[]commandParameters)位置D:BOOKC#_codeprojectQQ2010DALSQLHelper.cs:行号54在DAL.MessagesDAL.Insert(MessagesInfoentity)位置D:BOOKC#_codeprojectQQ2010DALMessagesDAL.cs:行号122在BLL.Messages.SendMessage(MessagesInfoentity,EnumMessageTypemessageType)位置D:BOOKC#_codeprojectQQ2010BLLMessages.cs:行号84在MyQQ.frmChat.btnSend_Click(Objectsender,EventArgse)位置D:BOOKC#_codeprojectQQ2010MyQQfrmChat.cs:行号77在System.Windows.Forms.Control.OnClick(EventArgse)在System.Windows.Forms.Button.OnClick(EventArgse)在System.Windows.Forms.Button.OnMouseUp(MouseEventArgsmevent)在System.Windows.Forms.Control.WmMouseUp(Message&m,MouseButtonsbutton,Int32clicks)在System.Windows.Forms.Control.WndProc(Message&m)在System.Windows.Forms.ButtonBase.WndProc(Message&m)在System.Windows.Forms.Button.WndProc(Message&m)在System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&m)在System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&m)在System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtrhWnd,Int32msg,IntPtrwparam,IntPtrlparam)在System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&msg)在System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32dwComponentID,Int32reason,Int32pvLoopData)在System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32reason,ApplicationContextcontext)在System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32reason,ApplicationContextcontext)在System.Windows.Forms.Application.Run(FormmainForm)在MyQQ.Program.Main()位置D:BOOKC#_codeprojectQQ2010MyQQProgram.cs:行号17在System.AppDomain._nExecuteAssembly(Assemblyassembly,String[]args)在System.AppDomain.ExecuteAssembly(StringassemblyFile,EvidenceassemblySecurity,String[]args)在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()在System.Threading.ThreadHelper.ThreadStart_Context(Objectstate)在System.Threading.ExecutionContext.Run(ExecutionContextexecutionContext,ContextCallbackcallback,Objectstate)在System.Threading.ThreadHelper.ThreadStart()InnerException:具体代码如下:usingSystem;usingSystem.Configuration;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Collections;namespaceDAL{publicclassSqlHelper{publicstaticreadonlystringConnString=ConfigurationManager.ConnectionStrings["SQLConnString"].ConnectionString;//HashtabletostorecachedparametersprivatestaticHashtableparmCache=Hashtable.Synchronized(newHashtable());publicstaticintExecuteNonQuery(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters){SqlCommandcmd=newSqlCommand();using(SqlConnectionconn=newSqlConnection(connectionString)){PrepareCommand(cmd,conn,null,cmdType,cmdText,commandParameters);intval=cmd.ExecuteNonQuery();cmd.Parameters.Clear();returnval;}}publicstaticintExecuteNonQuery(SqlConnectionconnection,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters){SqlCommandcmd=newSqlCommand();PrepareCommand(cmd,connection,null,cmdType,cmdText,commandParameters);intval=cmd.ExecuteNonQuery();cmd.Parameters.Clear();returnval;}publicstaticintExecuteNonQuery(SqlTransactiontrans,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters){SqlCommandcmd=newSqlCommand();PrepareCommand(cmd,trans.Connection,trans,cmdType,cmdText,commandParameters);intval=cmd.ExecuteNonQuery();cmd.Parameters.Clear();returnval;}publicstaticSqlDataReaderExecuteReader(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters){SqlCommandcmd=newSqlCommand();SqlConnectionconn=newSqlConnection(connectionString);try{PrepareCommand(cmd,conn,null,cmdType,cmdText,commandParameters);SqlDataReaderrdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);cmd.Parameters.Clear();returnrdr;}catch{conn.Close();throw;}}publicstaticobjectExecuteScalar(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters){SqlCommandcmd=newSqlCommand();using(SqlConnectionconnection=newSqlConnection(connectionString)){PrepareCommand(cmd,connection,null,cmdType,cmdText,commandParameters);objectval=cmd.ExecuteScalar();cmd.Parameters.Clear();returnval;}}publicstaticobjectExecuteScalar(SqlConnectionconnection,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters){SqlCommandcmd=newSqlCommand();PrepareCommand(cmd,connection,null,cmdType,cmdText,commandParameters);objectval=cmd.ExecuteScalar();cmd.Parameters.Clear();returnval;}publicstaticvoidCacheParameters(stringcacheKey,paramsSqlParameter[]commandParameters){parmCache[cacheKey]=commandParameters;}publicstaticSqlParameter[]GetCachedParameters(stringcacheKey){SqlParameter[]cachedParms=(SqlParameter[])parmCache[cacheKey];if(cachedParms==null)returnnull;SqlParameter[]clonedParms=newSqlParameter[cachedParms.Length];for(inti=0,j=cachedParms.Length;i<j;i++)clonedParms[i]=(SqlParameter)((ICloneable)cachedParms[i]).Clone();returnclonedParms;}privatestaticvoidPrepareCommand(SqlCommandcmd,SqlConnectionconn,SqlTransactiontrans,CommandTypecmdType,stringcmdText,SqlParameter[]cmdParms){if(conn.State!=ConnectionState.Open)conn.Open();cmd.Connection=conn;cmd.CommandText=cmdText;if(trans!=null)cmd.Transaction=trans;cmd.CommandType=cmdType;if(cmdParms!=null){foreach(SqlParameterparmincmdParms)cmd.Parameters.Add(parm);}}}}请教高手如何解决?谢谢。

解决方案

解决方案二:
错误提示很明显了,是'需要参数'@MessageState'
解决方案三:
引用1楼caicaihui的回复:

错误提示很明显了,是'需要参数'@MessageState'

就是不知道哪个参数啊。。

时间: 2024-12-30 22:55:43

仿QQ聊天的代码。在打开聊天窗口并输入聊天内容执行发送时,程序报错:的相关文章

c#-C#仿QQ聊天的代码。在打开聊天窗口并输入聊天内容执行发送时,程序报错

问题描述 C#仿QQ聊天的代码.在打开聊天窗口并输入聊天内容执行发送时,程序报错 这是一段仿QQ聊天的代码.在打开聊天窗口并输入聊天内容执行发送时,程序报错: 参数化查询 '(@FromUserId int,@ToUserId int,@Message nvarchar(1),@MessageType' 需要参数 '@MessageState',但未提供该参数. 错误详细信息为: 未处理 System.Data.SqlClient.SqlException Message="参数化查询 '(@F

android-Android程序在有些手机上可以运行有些手机打开时就报错

问题描述 Android程序在有些手机上可以运行有些手机打开时就报错 有些人说是手机系统版本的问题,我的版本设置为 android:minSdkVersion=""8"" android:targetSdkVersion=""19"" />错误为:03-27 17:42:49.851: D/jdwp(18655): sendBufferedRequest : len=0x3303-27 17:42:50.544: D/d

asp.net-页面打开时没有报错,点击别的链接后会报错~

问题描述 页面打开时没有报错,点击别的链接后会报错~ 在 NDQE.Application.Client.QNZX.QNZX_Index.Page_Load(Object sender, EventArgs e) 位置 F:项目1ProjectNDQENDQEApplicationClientQNZXQNZX_Index.aspx.cs:行号 17 在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, E

javascript-js代码中加上两个alert就好用,去掉就报错

问题描述 js代码中加上两个alert就好用,去掉就报错 var mvc = new suspicionmanagement.views.MainViewController(); var view = mvc.getView() var v_dataGrid = view.getDataGrid(); v_dataGrid.load(); alert(v_dataGrid); var datas = v_dataGrid.items.length;//得到总记录数 alert(datas);

代码经过精简后的仿QQ折叠菜单代码_导航菜单

我的好友 张三 王五 业务联系 李经理 家人 爸爸 妈妈 同事 小赵 讨厌的人 梅朝风

VC6.0打开文件以及向工程中添加文件时程序崩溃自动退出解决方法_C 语言

换了一台电脑,vc6.0程序中,点击打开文件以及向工程中添加文件时,程序竟然崩溃自动退出了. 不知什么原因,安装相同的vc程序,本本竟然出现此缘故.但是这个操作又是自己经常用到的,所以不得不解决. 与上一台电脑不同的是,此电脑是win7系统,而上一个则是xp系统.此电脑office是2010版本,而上一个则是WPS:于是乎,在网上查资料,来解决. 看到网上也有类似的问题,有的说是win7系统原因,有的说是office2007版本缘故,有的说是viso缘故.总之,这几种说法,我都符合.win7系统

急,急,手机经常收到程序报错代码的彩信

问题描述 [SatSep1021:27:34GMT+08:002011]HostManagerURL:http://sfms.m.snapfish.com/mercury/hessian[SatSep1021:27:34GMT+08:002011]HostManagersecureURL:https://sfms.m.snapfish.com/mercury/hessian[SatSep1021:27:34GMT+08:002011]TODO:HostManagersecureURLsettos

JS实现超简单的仿QQ折叠菜单效果_javascript技巧

本文实例讲述了JS实现超简单的仿QQ折叠菜单效果.分享给大家供大家参考.具体如下: 这是一款经过精简后的仿QQ折叠菜单代码,以前发过的,不过这个是经过几轮代码精简后的一个版本,而且在各浏览器下的表现也很不错,兼容性没出问题. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-simple-f-qq-zd-style-menu-codes/ 具体代码如下: <!DOCTYPE html> <html xmlns="http:/

myeclipse-tomcat启动报错 无法打开localhost页面 也不能打开jsp

问题描述 tomcat启动报错 无法打开localhost页面 也不能打开jsp 重新弄了 没有添加项目 启动没有报错 但是不打开localhost页面 只是空白 也不报错 解决方案 将原有tomcat删掉,重新部署一下tomcat. 解决方案二: 重新部署一个tomcat,先不要添加任何项目,看能不能启动,启动成功访问以下localhost:8080 解决方案三: 你启动tomcat了吗? 解决方案四: 重新部署即可,配置问题.