用C# SQL 2005 写的一个文件传阅签批程序.用fckedit 来设定 文件的样式模板 将模板的HTML代码 存入到数据库一个字段中贴出我的部分数据表qhf_AddSendDoc 字段
ASD_ID 自动编号 Int Not Null 自增编号
ASD_SendID 发文编号 Varchar(50) 主键 唯一
ASD_LsNum 流水号 Int
ASD_LsNumber 完整流水号 Varchar(100)ASD_DT_ID 发文模板ID
ASD_Name 发文名称
ASD_Unit 发文单位 Varchar(50)
ASD_Secrecy 保密级别 Varchar(50)
ASD_Number 发文号
ASD_OA_ID 归档
ASD_State 状态
ASD_Content 文件内容 varchar(max) 或者 ntext (sql 2000里边用)我将存储的HTML 代码 看了一下 大约 15000 个字符长度问题来了我执行一条语句
DbFuncs.ExecUpdate("update qhf_AddSendDoc set ASD_State='正在办理',ASD_NodeNum='" + str1 + "',ASD_NextNodeNum='" + sdr1["ASDN_NextNode"].ToString() + "' where ASD_SendID='" + ViewState["asdid"].ToString() + "'");就会超时表内数据不多 共170条记录当然不是每次执行都会超时只限于某个文件模板的HTML 代码的 记录别文件代码的执行都正常我找不到问题所在, 难道是HTML 存储在数据库中太多的问题吗?
ASD_ID 自动编号 Int Not Null 自增编号
ASD_SendID 发文编号 Varchar(50) 主键 唯一
ASD_LsNum 流水号 Int
ASD_LsNumber 完整流水号 Varchar(100)ASD_DT_ID 发文模板ID
ASD_Name 发文名称
ASD_Unit 发文单位 Varchar(50)
ASD_Secrecy 保密级别 Varchar(50)
ASD_Number 发文号
ASD_OA_ID 归档
ASD_State 状态
ASD_Content 文件内容 varchar(max) 或者 ntext (sql 2000里边用)我将存储的HTML 代码 看了一下 大约 15000 个字符长度问题来了我执行一条语句
DbFuncs.ExecUpdate("update qhf_AddSendDoc set ASD_State='正在办理',ASD_NodeNum='" + str1 + "',ASD_NextNodeNum='" + sdr1["ASDN_NextNode"].ToString() + "' where ASD_SendID='" + ViewState["asdid"].ToString() + "'");就会超时表内数据不多 共170条记录当然不是每次执行都会超时只限于某个文件模板的HTML 代码的 记录别文件代码的执行都正常我找不到问题所在, 难道是HTML 存储在数据库中太多的问题吗?
asdmodel.ASD_ID = Convert.ToInt32(updateAsd["ASD_ID"].ToString());
asdmodel.ASD_SendID = updateAsd["ASD_SendID"].ToString();
asdmodel.ASD_LsNum = Convert.ToInt32(updateAsd["ASD_LsNum"].ToString());
asdmodel.ASD_LsNumber = updateAsd["ASD_LsNumber"].ToString();
asdmodel.ASD_DT_ID = updateAsd["ASD_DT_ID"].ToString();
asdmodel.ASD_Name = updateAsd["ASD_Name"].ToString();
asdmodel.ASD_Unit = updateAsd["ASD_Unit"].ToString();
asdmodel.ASD_Secrecy = updateAsd["ASD_Secrecy"].ToString();
asdmodel.ASD_Number = updateAsd["ASD_Number"].ToString();
asdmodel.ASD_OA_ID = updateAsd["ASD_OA_ID"].ToString();
asdmodel.ASD_Stop = Convert.ToBoolean(updateAsd["ASD_Stop"].ToString());
asdmodel.ASD_JbUserID = updateAsd["ASD_JbUserID"].ToString();
asdmodel.ASD_JbUserName = updateAsd["ASD_JbUserName"].ToString();
asdmodel.ASD_UserID = updateAsd["ASD_UserID"].ToString();
asdmodel.ASD_UserName = updateAsd["ASD_UserName"].ToString();
asdmodel.ASD_Date = Convert.ToDateTime(updateAsd["ASD_Date"].ToString());
asdmodel.ASD_Content = ContractContent.Text;
asdmodel.ASD_NodeNum = Node;
asdmodel.ASD_NextNodeNum = NextNode;
asdmodel.ASD_State = sdr["ASD_State"].ToString();
AddSendDoc_SPLZLib_qhf.Update(asdmodel);中间层:AddSendDoc_SPLZLib_qhf.cs public static int Update(ASD_SPLZ_qhf model)
{
int rowsAffected;
SqlParameter[] parameters = {
new SqlParameter("@ASD_ID", SqlDbType.Int,4),
new SqlParameter("@ASD_SendID", SqlDbType.VarChar,50),
new SqlParameter("@ASD_LsNum", SqlDbType.Int,4),
new SqlParameter("@ASD_LsNumber", SqlDbType.VarChar,100),
new SqlParameter("@ASD_JbUserID", SqlDbType.VarChar,1000),
new SqlParameter("@ASD_JbUserName", SqlDbType.VarChar,1000),
new SqlParameter("@ASD_Date", SqlDbType.DateTime),
new SqlParameter("@ASD_UserID", SqlDbType.VarChar,50),
new SqlParameter("@ASD_UserName", SqlDbType.VarChar,50),
new SqlParameter("@ASD_DT_ID", SqlDbType.VarChar,50),
new SqlParameter("@ASD_Name", SqlDbType.VarChar,500),
new SqlParameter("@ASD_Unit", SqlDbType.VarChar,50),
new SqlParameter("@ASD_Secrecy", SqlDbType.VarChar,50),
new SqlParameter("@ASD_Number", SqlDbType.VarChar,50),
new SqlParameter("@ASD_State", SqlDbType.VarChar,20),
new SqlParameter("@ASD_Content", SqlDbType.NText),
new SqlParameter("@ASD_NodeNum", SqlDbType.VarChar,50),
new SqlParameter("@ASD_NextNodeNum", SqlDbType.VarChar,50),
new SqlParameter("@ASD_Stop", SqlDbType.Bit,1),
new SqlParameter("@ASD_OA_ID", SqlDbType.VarChar,50)};
parameters[0].Value = model.ASD_ID;
parameters[1].Value = model.ASD_SendID;
parameters[2].Value = model.ASD_LsNum;
parameters[3].Value = model.ASD_LsNumber;
parameters[4].Value = model.ASD_JbUserID;
parameters[5].Value = model.ASD_JbUserName;
parameters[6].Value = model.ASD_Date;
parameters[7].Value = model.ASD_UserID;
parameters[8].Value = model.ASD_UserName;
parameters[9].Value = model.ASD_DT_ID;
parameters[10].Value = model.ASD_Name;
parameters[11].Value = model.ASD_Unit;
parameters[12].Value = model.ASD_Secrecy;
parameters[13].Value = model.ASD_Number;
parameters[14].Value = model.ASD_State;
parameters[15].Value = model.ASD_Content;
parameters[16].Value = model.ASD_NodeNum;
parameters[17].Value = model.ASD_NextNodeNum;
parameters[18].Value = model.ASD_Stop;
parameters[19].Value = model.ASD_OA_ID;
RunProcedure("Pro_qhf_AddSendDoc_SPLZ_Update", parameters);
return (int)parameters[0].Value;
}数据库存储过程:ALTER PROCEDURE [dbo].[Pro_qhf_AddSendDoc_ADD]
@ASD_ID int output,
@ASD_SendID varchar(50),
@ASD_LsNum int,
@ASD_LsNumber varchar(100),
@ASD_JbUserID varchar(1000),
@ASD_JbUserName varchar(1000),
@ASD_Date datetime,
@ASD_UserID varchar(50),
@ASD_UserName varchar(50),
@ASD_DT_ID varchar(50),
@ASD_Name varchar(500),
@ASD_Unit varchar(50),
@ASD_Secrecy varchar(50),
@ASD_Number varchar(50),
@ASD_State varchar(20),
@ASD_Content ntext,
@ASD_NodeNum varchar(50),
@ASD_NextNodeNum varchar(50),
@ASD_Stop bit,
@ASD_OA_ID varchar(50) AS
INSERT INTO [qhf_AddSendDoc](
[ASD_SendID],[ASD_LsNum],[ASD_LsNumber],[ASD_JbUserID],[ASD_JbUserName],[ASD_Date],[ASD_UserID],[ASD_UserName],[ASD_DT_ID],[ASD_Name],[ASD_Unit],[ASD_Secrecy],[ASD_Number],[ASD_State],[ASD_Content],[ASD_NodeNum],[ASD_NextNodeNum],[ASD_Stop],[ASD_OA_ID]
)VALUES(
@ASD_SendID,@ASD_LsNum,@ASD_LsNumber,@ASD_JbUserID,@ASD_JbUserName,@ASD_Date,@ASD_UserID,@ASD_UserName,@ASD_DT_ID,@ASD_Name,@ASD_Unit,@ASD_Secrecy,@ASD_Number,@ASD_State,@ASD_Content,@ASD_NodeNum,@ASD_NextNodeNum,@ASD_Stop,@ASD_OA_ID
)
SET @ASD_ID = @@IDENTITY
GO
实在找不到超时的原因 头疼死了 求高手们 看看 有没有遇到过类似的情况啊
现在刚试了试从任务管理器中将qhf_AddSendDoc 表中的ASD_Content字段从 varchar(max) 改成ntext
都不行了
@ASD_ID int,
@ASD_SendID varchar(50),
@ASD_LsNum int,
@ASD_LsNumber varchar(100),
@ASD_JbUserID varchar(1000),
@ASD_JbUserName varchar(1000),
@ASD_Date datetime,
@ASD_UserID varchar(50),
@ASD_UserName varchar(50),
@ASD_DT_ID varchar(50),
@ASD_Name varchar(500),
@ASD_Unit varchar(50),
@ASD_Secrecy varchar(50),
@ASD_Number varchar(50),
@ASD_State varchar(20),
@ASD_Content ntext,
@ASD_NodeNum varchar(50),
@ASD_NextNodeNum varchar(50),
@ASD_Stop bit,
@ASD_OA_ID varchar(50)
AS
UPDATE [qhf_AddSendDoc] SET
[ASD_SendID] = @ASD_SendID,[ASD_LsNum] = @ASD_LsNum,[ASD_LsNumber] = @ASD_LsNumber,[ASD_JbUserID] = @ASD_JbUserID,[ASD_JbUserName] = @ASD_JbUserName,[ASD_Date] = @ASD_Date,[ASD_UserID] = @ASD_UserID,[ASD_UserName] = @ASD_UserName,[ASD_DT_ID] = @ASD_DT_ID,[ASD_Name] = @ASD_Name,[ASD_Unit] = @ASD_Unit,[ASD_Secrecy] = @ASD_Secrecy,[ASD_Number] = @ASD_Number,[ASD_State] = @ASD_State,[ASD_Content] = @ASD_Content,[ASD_NodeNum] = @ASD_NodeNum,[ASD_NextNodeNum] = @ASD_NextNodeNum,[ASD_Stop] = @ASD_Stop,[ASD_OA_ID] = @ASD_OA_ID
WHERE ASD_ID=@ASD_ID
GO