رمز للزر الأول التالي والأخير السابق وعرض البيانات في تطبيق Windows C#

برمجة


أهلاً،
أقوم بإنشاء تطبيق Windows C#. حيث أضع زرًا مثل الأول والتالي والأخير والسابق.
أريد الآن عرض جلب السجل من قاعدة البيانات وإظهاره في الصفحة.
عندما أنقر على الزر الأول، يتم عرض بيانات وقت التحميل أولاً. عندما أنقر على الأخير ثم تعرض البيانات السجل الأخير، وعندما أنقر على السابق ثم تعرض البيانات السابق، وعندما أنقر على التالي ثم اعرض البيانات التالية في تطبيق c# windows.
الرجاء مساعدتي…

ما حاولت:

حاولت إنشاء كود، ولكن لم أنجح. كيف يمكنني استخدام حلقة لاستخدام ذلك وعرض البيانات في وقت تحميل الصفحة.

الحل 2

استخدم هذا المثال لبناء النموذج الخاص بك

ج#
public partial class Form1 : Form
   {

       public Form1()
       {
           InitializeComponent();
       }

       DataTable dt = new DataTable();
       int index = 0;
       int last = 0;

       private void Form1_Load(object sender, EventArgs e)
       {
           dt.Columns.Add("FirstName");
           dt.Columns.Add("LastName");

           dt.Rows.Add("Moto", "Nexus");
           dt.Rows.Add("Apple", "Iphone");
           dt.Rows.Add("Sony", "Vaio");
           dt.Rows.Add("Samsung", "Edge");

           index = 0;
           last = dt.Rows.Count -1;
           PopulateData();
       }

       private void btnFirst_Click(object sender, EventArgs e)
       {
           index = 0;
           PopulateData();
       }
       private void btnLast_Click(object sender, EventArgs e)
       {
           index = last - 1;
           PopulateData();
       }
       private void btnPrev_Click(object sender, EventArgs e)
       {
           index--;
           index = index <0? 0:index;
           PopulateData();
       }
       private void btnNext_Click(object sender, EventArgs e)
       {
           index++;
           index = index > last? last : index;
           PopulateData();
       }

       private void PopulateData()
       {
           DataRow row = dt.Rows[index];
           string firstName = row["FirstName"].ToString();
           string lastName = row["LastName"].ToString();
           txtFirstName.Text = firstName;
           txtLastName.Text = lastName;

       }
   }

الحل 7

يقتبس:

إن ظهور عنصر التحكم BindingNavigator في Windows Forms يمكّن المطورين من تزويد المستخدمين النهائيين بواجهة مستخدم بسيطة للتنقل ومعالجة البيانات في النماذج التي يقومون بإنشائها.

التنقل بين البيانات باستخدام التحكم BindingNavigator – Windows Forms .NET Framework | مستندات مايكروسوفت[^]

الحل 1

أنت لا تستخدم حلقة.
تعتمد كيفية القيام بذلك بالضبط على عدد من العوامل، مثل كيفية جلب بياناتك، وكم البيانات المتضمنة، وما تحتويه قاعدة بياناتك بالضبط.
ولكن هناك طريقة واحدة ستكون:
تأكد من أن قاعدة البيانات الخاصة بك تحتوي على عمود معرف، مع IDENTITY.
قم بإعداد int لمستوى الفصل في قاعدة البيانات الخاصة بك والذي يسمى lastRow واضبطه على -1.
عندما تقوم بإحضار صف واحد من قاعدة البيانات لعرضه، استخدم شيئًا مثل:

SQL
SELECT TOP 1 * FROM MyTable WHERE Id > lastRow ORDER BY ID ASC

إذا حصلت على أي صفوف، فقم بتحميل الصف الأخير بقيمة المعرف.
بالنسبة إلى “التالي”، فهو نفس الاستعلام.
لسابقتها:

SQL
SELECT TOP 1 * FROM MyTable WHERE Id < lastRow ORDER BY ID DESC

أولاً:

SQL
SELECT TOP 1 * FROM MyTable ORDER BY ID ASC

لست:

SQL
SELECT TOP 1 * FROM MyTable ORDER BY ID DESC

الحل 29

زر الفراغ الخاص15_Click_1(مرسل الكائن، EventArgs e)
{

SqlConnection con = new SqlConnection(dbFunctions.connectionstring);
يحاول
{
con.Open();
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandType = CommandType.Text;

إذا (المعرف == “0”)
{
إذا (textMname.Text != “” && textqty.Text != “”)
{

DataTable dd = dbFunctions.getTable(“select isnull(max(NO),0)+1 from Medicals”);
إذا (dd.Rows.Count > 0)
{
المعرف = dd.Rows[0][0].إلى سلسلة()؛
}
com.CommandText = “أدخل في المواد الطبية (NO,M_Name,Qty,Patient,Dises,Remark,UNO,STATUS) القيم (@NO,@M_Name,@Qty,@Patient,@Dises,@Remark,@UNO,@STATUS )”;
// النوع = “جديد”؛
}
آخر
{
messageBox.Show(“يجب ألا يكون الاسم والكمية فارغين”);
}

}
آخر
{
إذا (textMname.Text != “” && textqty.Text != “”)
{
com.CommandText = “تحديث الأدوية Set M_Name=@M_Name,Qty=@Qty,Patient = @Patient,Dises=@Dises,Remark=@Remark,UNO = @UNO حيث NO=@NO “;
// النوع = “تحرير”؛
}
آخر
{
messageBox.Show(“يجب ألا يكون الاسم والكمية فارغين”);
}

}

com.Parameters.Add(“@NO”, SqlDbType.VarChar).Value = ID.ToString();
com.Parameters.Add(“@UNO”، SqlDbType.VarChar).Value = textUNO.Text;
com.Parameters.Add(“@M_Name”، SqlDbType.VarChar).Value = textMname.Text;
com.Parameters.Add(“@Qty”, SqlDbType.VarChar).Value = textqty.Text;
com.Parameters.Add(“@Patient”، SqlDbType.VarChar).Value = Patient.Text;
com.Parameters.Add(“@Dises”، SqlDbType.VarChar).Value = textDises.Text;
com.Parameters.Add(“@Remark”, SqlDbType.VarChar).Value = textRemarks.Text;
com.Parameters.Add(“@STATUS”، SqlDbType.Char).Value = “A”؛

com.ExecuteNonQuery();
com.Connection.Close();
MessageBox.Show(“تم حفظ التفاصيل بنجاح”،”Sucess”،MessageBoxButtons.OK،MessageBoxIcon.Information);

عرض()؛
واضح()؛
this.ActiveControl = textMname;
}
قبض (الاستثناء السابق)
{
//dbFunctions.Logs(Ex.Message, dbFunctions.username);
MessageBox.Show(Ex.Message, “Error”,MessageBoxButtons.OK,MessageBoxIcon.Error);
}

}

زر الفراغ الخاص17_Click_1(مرسل الكائن، EventArgs e)
{

واضح()؛

}
الفراغ الخاص واضح ()
{
المعرف = “0”؛
//textUNO.Text = “”;

// textPname.Text = “”;
textMname.Text = “”;
textqty.Text = “”;
// textDises.Text = “”;
//textRemarks.Text = “”;

}

dataGridView6_CellContentClick_1 (مرسل الكائن، DataGridViewCellEventArgs e) باطلة خاصة
{
يحاول
{
إذا (e.ColumnIndex == 0)
{
المعرف = dataGridView6.Rows[e.RowIndex].الخلايا[“NO”].Value.ToString();
DataTable dt = dbFunctions.getTable(“اختر * من الأدوية حيث NO='” + ID.ToString() + “‘”);
إذا (dt.Rows.Count > 0)
{
//إذا (dbfunction.Branch!= “0”)
//{
// cmb_Branch.Text = dataGridView1.Rows[e.RowIndex].الخلايا[“Branch”].Value.ToString();
//
textMname.Text = dt.Rows[0][“M_Name”].إلى سلسلة()؛
textUNO.Text = dt.Rows[0][“UNO”].إلى سلسلة()؛
textqty.Text = dt.Rows[0][“Qty”].إلى سلسلة()؛
المريض. النص = dt.Rows[0][“Patient”].إلى سلسلة()؛
textDises.Text = dt.Rows[0][“Dises”].إلى سلسلة()؛
textRemarks.Text = dt.Rows[0][“Remark”].إلى سلسلة()؛
// textvnumber.Text = dt.Rows[0][“VNUMBER”].إلى سلسلة()؛

}
آخر
{
//المعرف = 0;
}

}
إذا (e.ColumnIndex == 1)
{
DialogResult result=MessageBox.Show(“هل تريد حذف تفاصيل الوكيل، اضغط YES”، “Alcove”،MessageBoxButtons.YesNo،MessageBoxIcon.Information);
إذا (النتيجة == DialogResult.Yes)
{
dbFunctions.getTable(“تحديث مجموعة الأدوية STATUS=’D’ حيث NO='” + dataGridView6.Rows[e.RowIndex].الخلايا[“NO”].Value.ToString() + “‘”);
عرض()؛
}
}

}
يمسك { }

}

تسمية باطلة خاصة 6_Click (مرسل الكائن، EventArgs e)
{

}

زر الفراغ الخاص16_Click_1(مرسل الكائن، EventArgs e)
{
Clear1();
fetch_uniq_no();
عرض()؛

}
الفراغ الخاص واضح 1 ()
{
المعرف = “0”؛

// textPname.Text = “”;
textUNO.Text = “”;
textMname.Text = “”;
textqty.Text = “”;
textDises.Text = “”;
textRemarks.Text = “”;

}

textRemarks_TextChanged باطل خاص (مرسل الكائن، EventArgs e)
{

}

الفراغ العام fetch_uniq_no ()
{
DataTable dt = dbFunctions.getTable(“select ‘” + dbFunctions.Finance_Year + “https://www.codeproject.com/”+’UE’+right(‘0000’+cast(isnull(max(cast(right(UNO ,4) as int))),0)+1 as varchar),4) as No from Medicals حيث left(UNO,5)='” + dbFunctions.Finance_Year + “‘”);
إذا (dt.Rows.Count > 0)
{
textUNO.Text = dt.Rows[0][0].إلى سلسلة()؛
}
}

هذا هو استفساري من
كيفية إضافة الزر السابق

コメント

タイトルとURLをコピーしました