السلام عليكم ورحمة الله وبركاته ،،،
هذا كلاس للتعامل مع ال stored procedures بطريقة سهلة ان شاء الله :
اتمنى افادتي اذا كان هناك اي ملاحظات على الكود :)
public class DatabaseLayer
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["HOR2013"].ConnectionString.ToString());
public DatabaseLayer()
{
//
// TODO: Add constructor logic here
//
}
public string ExecuteScaler_SP(string SP_Name, string[,] Inputs)
{
con.Open();
SqlCommand cmd = new SqlCommand(SP_Name, con);
cmd.CommandType = CommandType.StoredProcedure;
if (Inputs != null)
{
for (int i = 0; i < (Inputs.Length / 2); )
{
cmd.Parameters.Add("@" + Inputs[i, 0], Inputs[i, 1]);
i++;
}
}
string row_affected = Convert.ToString(cmd.ExecuteScalar());
con.Close();
return row_affected;
}
public int ExecuteQuery_SP(string SP_Name, string[,] Inputs)
{
con.Open();
SqlCommand cmd = new SqlCommand(SP_Name, con);
cmd.CommandType = CommandType.StoredProcedure;
if (Inputs != null)
{
for (int i = 0; i < (Inputs.Length / 2); )
{
cmd.Parameters.Add("@" + Inputs[i, 0], Inputs[i, 1]);
i++;
}
}
int row_affected = cmd.ExecuteNonQuery();
con.Close();
return row_affected;
}
public DataSet ReturnDataset_SP(string SP_Name, string[,] Inputs)
{
con.Open();
SqlDataAdapter adpt = new SqlDataAdapter(SP_Name, con);
adpt.SelectCommand.CommandType = CommandType.StoredProcedure;
if (Inputs != null)
{
for (int i = 0; i < (Inputs.Length / 2); )
{
adpt.SelectCommand.Parameters.Add("@" + Inputs[i, 0], Inputs[i, 1]);
i++;
}
}
DataSet ds = new DataSet();
adpt.Fill(ds);
con.Close();
return ds;
}
public DataTable ReturnDataTable_SP(string SP_Name, string[,] Inputs)
{
con.Open();
SqlDataAdapter adpt = new SqlDataAdapter(SP_Name, con);
adpt.SelectCommand.CommandType = CommandType.StoredProcedure;
if (Inputs != null)
{
for (int i = 0; i < (Inputs.Length / 2); )
{
adpt.SelectCommand.Parameters.Add("@" + Inputs[i, 0], Inputs[i, 1]);
i++;
}
}
DataTable dt = new DataTable();
adpt.Fill(dt);
con.Close();
return dt;
}
}
بالنسبة لسؤالي هو كالتالي :
عند استدعائي للكلاس فإني اعمل التالي :
string[,] inputs = {{"Input", "%"+txt_item_code.Text+"%"}};
string Item_Code = db_obj.ExecuteScaler_SP("Get_Item_Code_like",inputs);
مافي طريقة بحيث يكون تعريف المصفوفة في نفس سطر استدعاء الكلاس ؟؟؟
ان شاء الله الاقي اقتراحات عندكم ....
شكرا جزيلا لكم جميعاً