10-07-19, 03:19 AM
(09-07-19, 09:50 PM)asemshahen5 كتب : تفضل هذا الكود بعد التعديلات التي طلبتها :
PHP كود :
private void dgvEmployee_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (dgvEmployee.CurrentRow != null)
{
using (SqlConnection sqlCon = new SqlConnection(@"server=.; Database=Accounts; Integrated Security=true"))
{
DataGridViewRow dgvRow = dgvEmployee.CurrentRow;
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandType = CommandType.Text;
string SqlStr = string.Empty;
if (dgvRow.Cells[0].Value == DBNull.Value)//Insert
{
SqlStr = "INSERT INTO Employee(Name,PositionID,Office,Age)VALUES (@Name,@PositionID,@Office,@Age)";
sqlCmd = new SqlCommand(SqlStr, sqlCon);
}
else //update
{
SqlStr = "UPDATE Employee SET Name = @Name,PositionID = @PositionID,Office = @Office,Age = @Age WHERE EmployeeID = @EmployeeID";
sqlCmd = new SqlCommand(SqlStr, sqlCon);
sqlCmd.Parameters.AddWithValue("@EmployeeID", Convert.ToInt32(dgvRow.Cells[0].Value));
}
sqlCmd.Parameters.AddWithValue("@Name", dgvRow.Cells[1].Value == DBNull.Value ? "" : dgvRow.Cells[1].Value.ToString());
sqlCmd.Parameters.AddWithValue("@PositionID", Convert.ToInt32(dgvRow.Cells[2].Value == DBNull.Value ? "0" : dgvRow.Cells[2].Value.ToString()));
sqlCmd.Parameters.AddWithValue("@Office", dgvRow.Cells[3].Value == DBNull.Value ? "" : dgvRow.Cells[3].Value.ToString());
sqlCmd.Parameters.AddWithValue("@Age", Convert.ToInt32(dgvRow.Cells[4].Value == DBNull.Value ? "0" : dgvRow.Cells[4].Value.ToString()));
sqlCon.Open();
sqlCmd.ExecuteNonQuery();
sqlCon.Close();
PopulateDataGridView();
}
}
}
private void PopulateDataGridView()
{
using (SqlConnection sqlCon = new SqlConnection(@"server=.; Database=Accounts; Integrated Security=true"))
{
SqlDataAdapter sqlAdp = new SqlDataAdapter("Select * From Employee", sqlCon);
DataTable dt = new DataTable();
sqlAdp.Fill(dt);
dgvEmployee.DataSource = dt;
}
}
private void Form1_Load(object sender, EventArgs e)
{
using (SqlConnection sqlCon = new SqlConnection(@"server=.; Database=Accounts; Integrated Security=true"))
{
SqlDataAdapter sqlAdp = new SqlDataAdapter("Select * From Employee", sqlCon);
DataTable dt = new DataTable();
sqlAdp.Fill(dt);
dgvEmployee.DataSource = dt;
}
}
الف شكر استاذي الغالى هو دا المطلوب بنسبه 90%
محتاج تعديل بسيط عليه ويبقى 100%
كود الحفظ هيكون داخل مفتاح عند الضغط عليه يتم الحفظ
وهنا فيه مشكله وجهتنى وهي عند اختيار اكثر من بند للموظف بيتم اضافه سطر واحد فقط
وايضا اذا تم تعديل بند موجود واضافه بند جديد عند الحفظ بيتم حفظ الجديد ولا يعدل التعديل ال تم
ولذلك
ممكن تعمل حلقه فور بحيث عند الضغط على حفظ يعمل لاتى
1- اي تعديلات تمت على السجلات المضافه سابقا يتم تعديلها
2- اذا كان تم اضافه مجموعه بنود جديده يتم حفظها ايضا
اتمنى تكون الغكره وصلت
وزادك الله علما نافعا
وجعله في ميزان حسناتك اللهم امين
