public int ExecuteNonQuery(params object[] paraValues)
{
using (SqlConnection connection = new SqlConnection(this.connectionString))
{
SqlCommand sqlCommand = this.CreateSqlCommand(connection);
try
{
this.DeriveParameters(sqlCommand);
this.AssignParameterValues(sqlCommand, paraValues);
connection.Open();
int affectedRowsCount = sqlCommand.ExecuteNonQuery();
this.returnValue = (int)sqlCommand.Parameters["@rtn"].Value;
this.setOutputValues(sqlCommand);
connection.Close();
return affectedRowsCount;
}
------------------------------------------------------------------------------------------------------
public string AreaSubmit(string AreaId,string AreaName,string AreaBelong,string AreaCover,string AreaLatlng)
{ StoredProcedure sp = new StoredProcedure(conStr, "sp_InsertArea");
try
{
string str=string.Empty;
// 参数个数及顺序需要与存储过程中的一致。
SqlParameter[] parms =new SqlParameter[]
{ new SqlParameter("@AreaId", SqlDbType.NVarChar), new SqlParameter("@AreaName", SqlDbType.NVarChar), new SqlParameter("@AreaBelong", SqlDbType.NVarChar), new SqlParameter("@AreaCover", SqlDbType.NVarChar), new SqlParameter("@AreaLatlng", SqlDbType.NVarChar),new SqlParameter("@rtn",SqlDbType.Int) };
parms[0].Value = AreaId;
parms[1].Value = AreaName;
parms[2].Value = AreaBelong;
parms[3].Value = AreaCover;
parms[4].Value = AreaLatlng; parms[5].Direction = ParameterDirection.Output;
sp.ExecuteNonQuery(parms);
//params object[] p={new SqlParameter("@AreaId",SqlDbType.NVarChar),new SqlParameter("@AreaName",SqlDbType.NVarChar),new SqlParameter("@AreaBelong",SqlDbType.NVarChar),new SqlParameter("@AreaCover",SqlDbType.NVarChar),new SqlParameter("@AreaLatlng",SqlDbType.NVarChar) };
switch (sp.ReturnValue)
{
case 0:
str ="存在相同记录";
break;
case 1:
str = "更新成功";
break;
case 2:
str="添加成功";
break;
// ......
}
return str;
--------------------------------------------------------------------------------------
在SQL中执行存储过程没有问题,上面是关键代码
{
using (SqlConnection connection = new SqlConnection(this.connectionString))
{
SqlCommand sqlCommand = this.CreateSqlCommand(connection);
try
{
this.DeriveParameters(sqlCommand);
this.AssignParameterValues(sqlCommand, paraValues);
connection.Open();
int affectedRowsCount = sqlCommand.ExecuteNonQuery();
this.returnValue = (int)sqlCommand.Parameters["@rtn"].Value;
this.setOutputValues(sqlCommand);
connection.Close();
return affectedRowsCount;
}
------------------------------------------------------------------------------------------------------
public string AreaSubmit(string AreaId,string AreaName,string AreaBelong,string AreaCover,string AreaLatlng)
{ StoredProcedure sp = new StoredProcedure(conStr, "sp_InsertArea");
try
{
string str=string.Empty;
// 参数个数及顺序需要与存储过程中的一致。
SqlParameter[] parms =new SqlParameter[]
{ new SqlParameter("@AreaId", SqlDbType.NVarChar), new SqlParameter("@AreaName", SqlDbType.NVarChar), new SqlParameter("@AreaBelong", SqlDbType.NVarChar), new SqlParameter("@AreaCover", SqlDbType.NVarChar), new SqlParameter("@AreaLatlng", SqlDbType.NVarChar),new SqlParameter("@rtn",SqlDbType.Int) };
parms[0].Value = AreaId;
parms[1].Value = AreaName;
parms[2].Value = AreaBelong;
parms[3].Value = AreaCover;
parms[4].Value = AreaLatlng; parms[5].Direction = ParameterDirection.Output;
sp.ExecuteNonQuery(parms);
//params object[] p={new SqlParameter("@AreaId",SqlDbType.NVarChar),new SqlParameter("@AreaName",SqlDbType.NVarChar),new SqlParameter("@AreaBelong",SqlDbType.NVarChar),new SqlParameter("@AreaCover",SqlDbType.NVarChar),new SqlParameter("@AreaLatlng",SqlDbType.NVarChar) };
switch (sp.ReturnValue)
{
case 0:
str ="存在相同记录";
break;
case 1:
str = "更新成功";
break;
case 2:
str="添加成功";
break;
// ......
}
return str;
--------------------------------------------------------------------------------------
在SQL中执行存储过程没有问题,上面是关键代码
errorID = 0
faultCode = "Server.Processing"
faultDetail = (null)
faultString = "将参数值从 SqlParameter 转换到 String 失败。"
message = "faultCode:Server.Processing faultString:'将参数值从 SqlParameter 转换到 String 失败。' faultDetail:'null'"
name = "Error"
rootCause = (null)FluorineStackTrace:undefined
StoredProcedure sp = new StoredProcedure(conStr, "sp_InsertArea");
sp.ExecuteNonQuery(parms);在vs2005并没有!我是这样使用的:
SqlConnection cn = new SqlConnection("Data Source=(local);Initial Catalog=utscadadb;Integrated Security=SSPI; User Id=sa;Password=ut2001;");
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = cn;
cmd.CommandText = "存储过程名称"; cmd.Parameters.Add("@file ", SqlDbType.VarChar).Value = "d:\\test.mp3";
cmd.Parameters.Add("@size", SqlDbType.Int).Value = 256; cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
StoredProcedure sp = new StoredProcedure(conStr, "sp_InsertArea");
sp.ExecuteNonQuery(parms);
参数PARMS与存储过程一致就行了,直接传进去,有多少个,用逗号隔开
StoredProcedure sp = new StoredProcedure(conStr, "sp_InsertArea");
sp.ExecuteNonQuery(value1,value2,value3);
想复杂了!!