السلام عليكم
من فضلكم احتاج مساعدة فى عمل تحديث لجدول بقاعدة البيانات عن طريق DataGridViewحيث أننى أستخدم ستورد بروسيدجر وكنت إستخدم الكود التالى فى تسجيل البيانات الموجودة بالداتا جريد بقاعدة البيانات ولكنى عند عمل نفس الكود مع تغيير الستورد بروسيدجر بالخاص بعملية Update وجدت انه يقوم بتحديث جميع البيانات الموجودة بالجدول والمرتبطة بالكود المطلوب البحث عنه فقمت بإضافة شرط إسم البيان المطلوب تعديله فى الستورد بروسيدجر ايضا لكى اقوم بتحديث السطر المراد فقط ولكن لا يتم التحديث الأن ؟؟
كود الستورد بروسيدجر
@Group_ID int, @Item_Desc nvarchar(200), @Item_Prices FLOAT as update Monthly_Data_Out set Item_Desc = @Item_Desc, Item_prices = @Item_Prices where Group_ID = @Group_ID AND Item_Desc = @Item_Descالكود المستخدم للتعديل فى الشاشة
// بيانات مصاريف أساسيةfor (var i = 0; i <= DGV_Out.RowCount - 1; i++){MyFun.FireStoredProcedure("Update_Monthly_Data", new SqlParameter("@Group_ID", MyFun.id),new SqlParameter("@Item_Desc", DGV_Out.Rows.Cells["Item_Desc_Col"].Value.ToString()),new SqlParameter("@Item_prices", DGV_Out.Rows.Cells["Item_prices_Col"].Value.ToString()));} حيث اننى استدعيها من ملف Dll وهذا هو كوده MyFun
public DataTable FireDataTable_StoredProcedure(string StoredProcedureName, params SqlParameter[] arrParam)
{
SqlParameter firstOutputParameter = null;
if (cn.State == ConnectionState.Closed) cn.Open();
dt = new DataTable();
cmd.Connection = cn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = StoredProcedureName;
cmd.CommandTimeout = cn.ConnectionTimeout;
if (arrParam != null)
{
foreach (SqlParameter param in arrParam)
{
cmd.Parameters.Add(param);
if (param.Direction == ParameterDirection.Output && param.SqlDbType == SqlDbType.Int)
{
firstOutputParameter = param;
}
}
}
try
{
ad.SelectCommand = cmd;
ad.Fill(dt);
cmd.Parameters.Clear();
return dt;
}
catch (Exception)
{
return dt;
}
} فهل من الممكن مساعدتى فى كيفية تحديث البيانات فى قاعدة البيانات ؟