gkwww(奔放) 说的很对,
CREATE PROC sp_TDataRowLockerSave
@n_DataRowID NUMERIC(10,0) ,
@s_TableName NVARCHAR(50),
@s_Locker NVARCHAR(10),
@Locker NVARCHAR(10) OUTPUT,
@j VARCHAR(2) OUTPUT
...C#中:
...
SqlCommand cmd = new SqlCommand("sp_TDataRowLockerSave",conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Clear(); SqlParameter param = new SqlParameter("@n_DataRowID",SqlDbType.Decimal);
param.Value = n_DataRowID;
param.Direction = ParameterDirection.Input;
cmd.Parameters.Add(param); param = new SqlParameter("@s_TableName",SqlDbType.NVarChar,50);
param.Value = s_TableName;
param.Direction = ParameterDirection.Input;
cmd.Parameters.Add(param); param = new SqlParameter("@s_Locker",SqlDbType.NVarChar,10);
param.Direction = ParameterDirection.Input;
param.Value = s_Locker;
cmd.Parameters.Add(param); param = new SqlParameter("@Locker",SqlDbType.NVarChar,10);
param.Direction = ParameterDirection.Output;
cmd.Parameters.Add(param); param = new SqlParameter("@j",SqlDbType.NVarChar,2);
param.Direction = ParameterDirection.Output;
cmd.Parameters.Add(param); cmd.ExecuteNonQuery(); string locker = cmd.Parameters["@Locker"].Value.ToString();
string str = cmd.Parameters["@j"].Value.ToString();...
CREATE PROC sp_TDataRowLockerSave
@n_DataRowID NUMERIC(10,0) ,
@s_TableName NVARCHAR(50),
@s_Locker NVARCHAR(10),
@Locker NVARCHAR(10) OUTPUT,
@j VARCHAR(2) OUTPUT
...C#中:
...
SqlCommand cmd = new SqlCommand("sp_TDataRowLockerSave",conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Clear(); SqlParameter param = new SqlParameter("@n_DataRowID",SqlDbType.Decimal);
param.Value = n_DataRowID;
param.Direction = ParameterDirection.Input;
cmd.Parameters.Add(param); param = new SqlParameter("@s_TableName",SqlDbType.NVarChar,50);
param.Value = s_TableName;
param.Direction = ParameterDirection.Input;
cmd.Parameters.Add(param); param = new SqlParameter("@s_Locker",SqlDbType.NVarChar,10);
param.Direction = ParameterDirection.Input;
param.Value = s_Locker;
cmd.Parameters.Add(param); param = new SqlParameter("@Locker",SqlDbType.NVarChar,10);
param.Direction = ParameterDirection.Output;
cmd.Parameters.Add(param); param = new SqlParameter("@j",SqlDbType.NVarChar,2);
param.Direction = ParameterDirection.Output;
cmd.Parameters.Add(param); cmd.ExecuteNonQuery(); string locker = cmd.Parameters["@Locker"].Value.ToString();
string str = cmd.Parameters["@j"].Value.ToString();...
ALTER PROCEDURE dbo.AttendanceAuto (
@CardNo nvarchar(20),
@MinutesOffset int=0,
@AttendanceResult int=0 output,
@EmployeeID nvarchar(20) output,
@EmployeeName nvarchar(20) output
)
AS下面是程序部分:SqlCommand sqlComm = new SqlCommand();
sqlComm.CommandType = CommandType.StoredProcedure;
sqlComm.CommandText = "AttendanceAuto";
sqlComm.Parameters.Clear();sqlComm.Parameters.Add("@CardNo",DbType.String);
sqlComm.Parameters["@CardNo"].Value = CardNo ;sqlComm.Parameters.Add("@MinutesOffset",DbType.Int32);
sqlComm.Parameters["@MinutesOffset"].Value = 0;sqlComm.Parameters.Add("@AttendanceResult",DbType.Int32);
sqlComm.Parameters["@AttendanceResult"].Direction = ParameterDirection.Output;sqlComm.Parameters.Add("@EmployeeID",DbType.String);
sqlComm.Parameters["@EmployeeID"].Direction = ParameterDirection.Output;sqlComm.Parameters.Add("@EmployeeName",DbType.String);
sqlComm.Parameters["@EmployeeName"].Direction = ParameterDirection.Output;
sqlComm.ExecuteNonQuery();int AttendanceResult = (int) sqlComm.Parameters["@AttendanceResult"].Value;
string EmployeeID = sqlComm.Parameters["@EmployeeID"].Value.ToString();
string EmployeeName = sqlComm.Parameters["@EmployeeName"].Value.ToString();
然后复制下来到查询分析器里执行以下看看到底问题出在哪儿
@UserName NVARCHAR(50) = NULL,
@UserInfo NVARCHAR(4000) = NULL AS
SET XACT_ABORT ON
BEGIN TRANSACTION
INSERT INTO [UserDataStore]
VALUES (@UserName,@UserInfo)
COMMIT TRANSACTION
RETURN 0
GO
则相应的程序为:...
public bool InsertUserData(DataSet userData)
{
OleDbCommand insertCommand=new OleDbCommand("InsertUserData",dsConnection);
insertCommand.CommandType=CommandType.StoredProcedure;
insertCommand.Parameters.Add("@UserName",OleDbType.VarWChar,50,"UserName");
insertCommand.Parameters.Add("@UserInfo", OleDbType.VarWChar,4000,"UserInfo");
dsCommand.InsertCommand=insertCommand;
try
{
dsCommand.InsertCommand=this.GetInsertCommand();
dsCommand.Update(userData,"UserDataStore");
userData.AcceptChanges();
return (true);
}
catch(Exception e)
{
throw e;
}
}