System.Web.Services.Protocols.SoapException: 服务器无法处理请求。

wulg10 2010-05-17 10:27:47
System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.Data.SqlClient.SqlException: 参数化查询 '(@库存ID nvarchar(50),@用户ID nvarchar(50),@用户名 nvarchar(50),@时间 dat' 需要参数 '@发生单位',但未提供该参数


public static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["dm2008p"].ConnectionString;

public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{

SqlCommand cmd = new SqlCommand();

using (SqlConnection conn = new SqlConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}

private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, 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 (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}

/// <summary>
/// 插入
/// </summary>
/// <param name="a"></param>
/// <returns></returns>
public static bool Insert(tbl_WH_02_库存明细 a)
{
StringBuilder sql =new StringBuilder("insert into tbl_WH_02_库存明细(库存ID,用户ID,用户名,时间,仓库ID,仓库名称,商品编号,商品名称,原始单据ID,原始单据编号,发生单价,发生数量,");
sql.Append("发生单位,发生金额,计量单价,计量数量,计量金额,计量单位,存放库位,批次) values (@库存ID,@用户ID,@用户名,@时间,@仓库ID,@仓库名称,@商品编号,@商品名称,@原始单据ID,@原始单据编号,@发生单价,");
sql.Append("@发生数量,@发生单位,@发生金额,@计量单价,@计量数量,@计量金额,@计量单位,@存放库位,@批次 )");

SqlParameter[] paras = new SqlParameter[]{
new SqlParameter("@库存ID",SqlDbType.NVarChar,50),
new SqlParameter("@用户ID",SqlDbType.NVarChar,50),
new SqlParameter("@用户名",SqlDbType.NVarChar,50),
new SqlParameter("@时间",SqlDbType.DateTime),
new SqlParameter("@仓库ID",SqlDbType.NVarChar,50),
new SqlParameter("@仓库名称",SqlDbType.NVarChar,50),
new SqlParameter("@商品编号",SqlDbType.NVarChar,50),
new SqlParameter("@商品名称",SqlDbType.NVarChar,50)

};
paras[0].Value = a.库存ID;
paras[1].Value = a.用户ID;
paras[2].Value = a.用户名;
paras[3].Value = a.时间;
paras[4].Value = a.仓库ID;
paras[5].Value = a.仓库名称;
paras[6].Value = a.商品编号;
paras[7].Value = a.商品名称;

int val = DBHelper.ExecuteNonQuery(DBHelper.ConnectionString, CommandType.Text, sql.ToString(), paras);
if (val > 0)
{
return true;
}
else
{
return false;
}
}

[XmlInclude(typeof(tbl_WH_02_库存明细))]
[WebMethod]
public bool Insert库存信息(tbl_WH_02_库存明细 a)
{
return tbl_WH_02_库存明细BLL.Insert(a);
}


请问大家,这怎么解决啊?
...全文
1250 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wulg10 2010-05-17
  • 打赏
  • 举报
回复
我知道答案了。结贴!

我在插入数据时,少了一个字段。
songxiii_1 2010-05-17
  • 打赏
  • 举报
回复
public static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["dm2008p"].ConnectionString;

public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{

SqlCommand cmd = new SqlCommand();

using (SqlConnection conn = new SqlConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}

private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, 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 (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}

/// <summary>
/// 插入
/// </summary>
/// <param name="a"></param>
/// <returns></returns>
public static bool Insert(tbl_WH_02_库存明细 a)
{
StringBuilder sql =new StringBuilder("insert into tbl_WH_02_库存明细(库存ID,用户ID,用户名,时间,仓库ID,仓库名称,商品编号,商品名称,原始单据ID,原始单据编号,发生单价,发生数量,");
sql.Append("发生单位,发生金额,计量单价,计量数量,计量金额,计量单位,存放库位,批次) values (@库存ID,@用户ID,@用户名,@时间,@仓库ID,@仓库名称,@商品编号,@商品名称,@原始单据ID,@原始单据编号,@发生单价,");
sql.Append("@发生数量,@发生单位,@发生金额,@计量单价,@计量数量,@计量金额,@计量单位,@存放库位,@批次 )");

SqlParameter[] paras = new SqlParameter[]{
new SqlParameter("@库存ID",SqlDbType.NVarChar,50),
new SqlParameter("@用户ID",SqlDbType.NVarChar,50),
new SqlParameter("@用户名",SqlDbType.NVarChar,50),
new SqlParameter("@时间",SqlDbType.DateTime),
new SqlParameter("@仓库ID",SqlDbType.NVarChar,50),
new SqlParameter("@仓库名称",SqlDbType.NVarChar,50),
new SqlParameter("@商品编号",SqlDbType.NVarChar,50),
new SqlParameter("@商品名称",SqlDbType.NVarChar,50)

};
paras[0].Value = a.库存ID;
paras[1].Value = a.用户ID;
paras[2].Value = a.用户名;
paras[3].Value = a.时间;
paras[4].Value = a.仓库ID;
paras[5].Value = a.仓库名称;
paras[6].Value = a.商品编号;
paras[7].Value = a.商品名称;

int val = DBHelper.ExecuteNonQuery(DBHelper.ConnectionString, CommandType.Text, sql.ToString(), paras);
if (val > 0)
{
return true;
}
else
{
return false;
}
}

[XmlInclude(typeof(tbl_WH_02_库存明细))]
[WebMethod]
public bool Insert库存信息(tbl_WH_02_库存明细 a)
{
return tbl_WH_02_库存明细BLL.Insert(a);
}



12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧