Mã cho nút đầu tiên tiếp theo cuối cùng trước đó và hiển thị dữ liệu trong ứng dụng C# của cửa sổ trang

lập trình


CHÀO,
tôi tạo ứng dụng Windows C#. trong đó tôi đặt nút như đầu tiên, tiếp theo, cuối cùng, trước đó.
bây giờ tôi muốn hiển thị tìm nạp bản ghi từ cơ sở dữ liệu và hiển thị trong trang.
khi tôi nhấp vào nút đầu tiên thì dữ liệu thời gian tải sẽ hiển thị đầu tiên. Khi tôi nhấp vào lần cuối thì dữ liệu sẽ hiển thị bản ghi cuối cùng, khi tôi nhấp vào trước thì dữ liệu sẽ phân tán trước đó và khi tôi nhấp vào tiếp theo thì hiển thị dữ liệu tiếp theo trong ứng dụng Windows C#.
hãy giúp tôi…

Những gì tôi đã thử:

tôi đã cố gắng tạo mã nhưng không thành công. làm cách nào tôi có thể sử dụng vòng lặp for để sử dụng dữ liệu đó và hiển thị dữ liệu trong thời gian tải trang.

Giải pháp 2

sử dụng ví dụ này xây dựng Biểu mẫu của bạn

C#
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;

       }
   }

Giải pháp 7

Trích dẫn:

Sự ra đời của điều khiển BindingNavigator trong Windows Forms cho phép các nhà phát triển cung cấp cho người dùng cuối giao diện người dùng thao tác và điều hướng dữ liệu đơn giản trên các biểu mẫu mà họ tạo.

Điều hướng dữ liệu bằng điều khiển BindingNavigator – Windows Forms .NET Framework | Tài liệu Microsoft[^]

Giải pháp 1

Bạn không sử dụng một vòng lặp.
Cách thực hiện việc này chính xác phụ thuộc vào một số yếu tố, chẳng hạn như cách bạn tìm nạp dữ liệu, lượng dữ liệu có liên quan và chính xác DB của bạn chứa gì.
Nhưng một cách sẽ là:
Đảm bảo DB của bạn chứa cột Id, cùng với IDENTITY.
Thiết lập int cấp lớp trong DB của bạn được gọi là lastRow và đặt nó thành -1.
Khi bạn tìm nạp một hàng từ DB để hiển thị, hãy sử dụng nội dung như:

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

Nếu bạn nhận được bất kỳ hàng nào, hãy tải LastRow với giá trị ID.
Đối với “Tiếp theo”, đó là truy vấn tương tự.
Đối với trước đó:

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

Đầu tiên:

SQL
SELECT TOP 1 * FROM MyTable ORDER BY ID ASC

Cuối cùng:

SQL
SELECT TOP 1 * FROM MyTable ORDER BY ID DESC

Giải pháp 29

nút void riêng tư15_Click_1(người gửi đối tượng, EventArgs e)
{

SqlConnection con = new SqlConnection(dbFunctions.connectionstring);
thử
{
con.Open();
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandType = CommandType.Text;

nếu (ID == “0”)
{
if (textMname.Text != “” && textqty.Text != “”)
{

DataTable dd = dbFunctions.getTable(“select isnull(max(NO),0)+1 từ y tế”);
if (dd.Rows.Count > 0)
{
ID = dd.Rows[0][0].ToString();
}
com.CommandText = “chèn vào giá trị y tế (NO,M_Name,Qty,Patient,Dises,Remark,UNO,STATUS) (@NO,@M_Name,@Qty,@Patient,@Dises,@Remark,@UNO,@STATUS )”;
//Gõ = “MỚI”;
}
khác
{
MessageBox.Show(“Mname và qty không được rỗng”);
}

}
khác
{
if (textMname.Text != “” && textqty.Text != “”)
{
com.CommandText = “cập nhật y tế Đặt M_Name=@M_Name,Qty=@Qty,Patient = @Patient,Dises=@Dises,Remark=@Remark,UNO = @UNO trong đó NO=@NO “;
//Gõ = “CHỈNH SỬA”;
}
khác
{
MessageBox.Show(“Mname và qty không được rỗng”);
}

}

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 = disease.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(“Chi tiết đã lưu thành công”, “Thành công”, MessageBoxButtons.OK, MessageBoxIcon.Information);

trưng bày();
thông thoáng();
this.ActiveControl = textMname;
}
bắt (Ngoại lệ Ex)
{
//dbFunctions.Logs(Ex.Message, dbFunctions.username);
MessageBox.Show(Ex.Message, “Error”, MessageBoxButtons.OK, MessageBoxIcon.Error);
}

}

nút void riêng tư17_Click_1(người gửi đối tượng, EventArgs e)
{

thông thoáng();

}
khoảng trống riêng tư rõ ràng ()
{
ID = “0”;
//textUNO.Text = “”;

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

}

dữ liệu void riêng tưGridView6_CellContentClick_1(người gửi đối tượng, DataGridViewCellEventArgs e)
{
thử
{
if (e.ColumnIndex == 0)
{
ID = dataGridView6.Rows[e.RowIndex].Cells[“NO”].Value.ToString();
DataTable dt = dbFunctions.getTable(“chọn * từ y tế trong đó NO='” + ID.ToString() + “‘”);
nếu (dt.Rows.Count > 0)
{
//if (dbfunction.Branch != “0”)
//{
// cmb_Branch.Text = dataGridView1.Rows[e.RowIndex].Cells[“Branch”].Value.ToString();
//}
textMname.Text = dt.Rows[0][“M_Name”].ToString();
văn bảnUNO.Text = dt.Rows[0][“UNO”].ToString();
textqty.Text = dt.Rows[0][“Qty”].ToString();
bệnh nhân.Text = dt.Rows[0][“Patient”].ToString();
textDises.Text = dt.Rows[0][“Dises”].ToString();
textRemarks.Text = dt.Rows[0][“Remark”].ToString();
// textvnumber.Text = dt.Rows[0][“VNUMBER”].ToString();

}
khác
{
//id = 0;
}

}
if (e.ColumnIndex == 1)
{
Kết quả DialogResult = MessageBox.Show(“Bạn có muốn xóa chi tiết đại lý nhấn YES”, “Alcove”, MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (kết quả == DialogResult.Yes)
{
dbFunctions.getTable(“cập nhật bộ y tế STATUS=’D’ trong đó NO='” + dataGridView6.Rows[e.RowIndex].Cells[“NO”].Value.ToString() + “‘”);
trưng bày();
}
}

}
nắm lấy { }

}

nhãn void riêng6_Click(người gửi đối tượng, EventArgs e)
{

}

nút void riêng tư16_Click_1(người gửi đối tượng, EventArgs e)
{
Clear1();
tìm nạp_uniq_no();
trưng bày();

}
khoảng trống riêng tư clear1()
{
ID = “0”;

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

}

văn bản void riêng tưRemarks_TextChanged(người gửi đối tượng, EventArgs e)
{

}

khoảng trống công khai lấy_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 từ y tế nơi left(UNO,5)='” + dbFunctions.Finance_Year + “‘”);
nếu (dt.Rows.Count > 0)
{
văn bảnUNO.Text = dt.Rows[0][0].ToString();
}
}

Đây là câu hỏi của tôi hơn
làm cách nào để thêm nút phổ biến

コメント

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