30/09/2018, 16:23
C# Xin hướng dẫn Sử dụng Procedure nhận tham số output
Mình có đoạn code này nhưng nó chạy bị sai
P/s mình muốn hỏi có bạn nào share mình code hàm procedure mà truyền vào giá trị và trả vê giá trị
public static bool ExcuteProcedure(string procName, SqlParameter[] parameters, SqlParameter[] parametersOut, string[] valueIn,string[] valueOut, string[] dataNameIn, string[] dataNameOut)
{
try
{
con = DataProvider.connect();
command = DataProvider.createCommandProcedure(con, procName);
if (parameters != null)
{
foreach (SqlParameter para in parameters)
{
command.Parameters.Add(para);
}
int length = dataNameIn.Length;
for (int i = 0; i < length; i++)
{
command.Parameters[dataNameIn[i]].Value = valueIn[i];
}
}
if (parametersOut != null)
{
foreach (SqlParameter para in parametersOut)
{
command.Parameters.Add(para).Direction = ParameterDirection.Output;
}
}
command.ExecuteNonQuery();
if (parametersOut != null)
{
int num = dataNameOut.Length;
for (int i = 0; i < num; i++)
{
valueOut[i] = command.Parameters[dataNameOut[i]].Value.ToString();
}
}
con.Close();
return true;
}
catch (Exception ex)
{
throw new Exception("Lỗi function DataService.ExcuteProcedure()!!!
" + ex.Message);
con.Close();
return false;
}
}
Bài liên quan
Mình có hàm trả về giá trị kiểu
int
, bạn có thể tùy biến để trả về giá trị khác, Mình chưa thử trả về kiểu mảng hay gì đó.Bạn viết
Store Procedure
có kết quả trả về dùng keyword@output
.ví dụ:
Cách sử dụng gọi hàm :
thanks minhf sua duoc rui =)))
SqlParameter[] paraOut = { new SqlParameter("@NAME", SqlDbType.NVarChar,40),
(thieu size nen bi loi =))) )