[ad_1]
`i have this code how can change the connection sql to Entity like NorthwindEntity` ``` > using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Attendance_Management_System.PAL.User_Control { public partial class UserControlAttendance : UserControl { private string sql = @"Data Source = .\SQLEXPRESS; Initial Catalog = Attendance_Management_System; Integrated Security = True;"; private bool okay; public UserControlAttendance() { InitializeComponent(); dataGridViewMarkAttendance.Columns["Column1"].Visible = false; dataGridViewMarkAttendance.Columns["Column5"].Visible = false; } private void comboBoxClass_SelectedIndexChanged(object sender, EventArgs e) { if(Attendance.Attendance.IsMarkAttendance(dateTimePickerDate.Text, comboBoxClass.SelectedItem.ToString(), sql)) { Attendance.Attendance.DisplayAndSearchAllData("SELECT Student_Table.Student_ID, Student_Name, Student_Reg, Attendance_Status FROM Student_Table INNER JOIN Attendance_Table ON Student_Table.Student_ID = Attendance_Table.Student_ID INNER JOIN Class_Table ON Class_Table.Class_ID = Student_Table.Class_ID WHERE Attendance_Date = '" + dateTimePickerDate.Text + "' AND Class_Name = '" + comboBoxClass.SelectedItem.ToString() + "';", dataGridViewMarkAttendance, sql); okay = true; } else { Attendance.Attendance.DisplayAndSearchAllData("SELECT Student_ID, Student_Name, Student_Reg FROM Student_Table INNER JOIN Class_Table ON Class_Table.Class_ID = Student_Table.Class_ID WHERE Class_Name = '" + comboBoxClass.SelectedItem.ToString() + "';", dataGridViewMarkAttendance, sql); okay = false; } } private void tabPageMarkAttendance_Leave(object sender, EventArgs e) { if (comboBoxClass.SelectedIndex != -1) { if (comboBoxClass.SelectedIndex != -1) { string status; if (Attendance.Attendance.IsMarkAttendance(dateTimePickerDate.Text, comboBoxClass.SelectedItem.ToString(), sql)) { foreach (DataGridViewRow row in dataGridViewMarkAttendance.Rows) { if (Convert.ToBoolean(row.Cells["Column4"].EditedFormattedValue) == true) status = "Present"; else status = "Absent"; Attendance.Attendance.UpdateAttendance(row.Cells["Column1"].Value.ToString(), dateTimePickerDate.Text, status, sql); } } else { foreach (DataGridViewRow row in dataGridViewMarkAttendance.Rows) { if (Convert.ToBoolean(row.Cells["Column4"].EditedFormattedValue) == true) status = "Present"; else status = "Absent"; Attendance.Attendance.MarkAttendance(row.Cells["Column1"].Value.ToString(), dateTimePickerDate.Text, status, sql); } } } } } private void dataGridViewMarkAttendance_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (comboBoxClass.SelectedIndex != -1) { if (Attendance.Attendance.IsMarkAttendance(dateTimePickerDate.Text, comboBoxClass.SelectedItem.ToString(), sql) && okay) { foreach (DataGridViewRow row in dataGridViewMarkAttendance.Rows) { if (row.Cells["Column5"].Value.ToString() == "Present") row.Cells["Column4"].Value = true; else row.Cells["Column4"].Value = false; } } } } private void comboBoxClass_Click(object sender, EventArgs e) { comboBoxClass.Items.Clear(); Attendance.Attendance.FillComboBox("SELECT DISTINCT(Class_Name) FROM Class_Table;", comboBoxClass, sql); } } } ``` `i try this in combobox it,s working` ``` using(Attendance_Management_SystemEntities db=new Attendance_Management_SystemEntities()) { db.Configuration.ProxyCreationEnabled = false; comboBoxClass.DataSource = db.Class_Table.ToList(); comboBoxClass.ValueMember = "Class_ID"; comboBoxClass.DisplayMember = "Class_Name"; } ``` `but in private void comboBoxClass_SelectedIndexChanged not find way to do it` What I have tried: i try this in <pre>private void ucAttendance_Load(object sender, EventArgs e) { using(Attendance_Management_SystemEntities db=new Attendance_Management_SystemEntities()) { db.Configuration.ProxyCreationEnabled = false; comboBoxClass.DataSource = db.Class_Table.ToList(); comboBoxClass.ValueMember = "Class_ID"; comboBoxClass.DisplayMember = "Class_Name"; } }
تعمل بشكل جيد ولكن في combobox لا تعمل ديسيبل
private void comboBoxClass_SelectedIndexChanged(object sender, EventArgs e) { if (Attendance.Attendance.IsMarkAttendance(dTPickerAttend.Text, comboBoxClass.SelectedItem.ToString(), )) { Attendance.Attendance.DisplayAndSearchAllData("SELECT Student_Table.Student_ID, Student_Name, Student_Reg, Attendance_Status FROM Student_Table INNER JOIN Attendance_Table ON Student_Table.Student_ID = Attendance_Table.Student_ID INNER JOIN Class_Table ON Class_Table.Class_ID = Student_Table.Class_ID WHERE Attendance_Date = '" + dTPickerAttend.Text + "' AND Class_Name = '" + comboBoxClass.SelectedItem.ToString() + "';", dataGridViewMarkAttendance, sql); //okay = true; } else { Attendance.Attendance.DisplayAndSearchAllData("SELECT Student_ID, Student_Name, Student_Reg FROM Student_Table INNER JOIN Class_Table ON Class_Table.Class_ID = Student_Table.Class_ID WHERE Class_Name = '" + comboBoxClass.SelectedItem.ToString() + "';", dataGridViewMarkAttendance, sql); //okay = false; } }
الحل 1
ج #
private string sql = @"Data Source = .\SQLEXPRESS; Initial Catalog = Attendance_Management_System; Integrated Security = True;";
لا تفعل ذلك أبدًا: يطلق عليه “الترميز الثابت” ويعني أنه يتعين عليك تغيير مصدر تطبيقك بين التطوير والإنتاج – مما يعني أنك تقوم بإصدار تعليمات برمجية لم يتم اختبارها.
بدلاً من ذلك، استخدم دائمًا ملف التكوين لتخزين مثل هذه الأشياء: ثم عند إصدار التعليمات البرمجية، لا يتغير ملف التكوين ويجب أن “يعمل فقط”. يمكنك استخدام ملف إعدادات .NET، أو استخدام JSON، أو XML، أو كتابة رمز خاص بك يدويًا – ولكن الطريقة التي أفعلها موضحة هنا: تخزين المثيلات – طريقة بسيطة لمشاركة بيانات التكوين بين التطبيقات[^] – من المحتمل أن يكون هذا الأمر مبالغًا فيه بعض الشيء بالنسبة لتطبيقك، ولكنه يوضح طريقة لإدارته.
[ad_2]
コメント