私はあきらめています。 5時間まっすぐなものをたくさん試しました。私には何も来ていません。C# - データベースのIDにスキップ
私はレコードを追加し、データベースからレコードを削除できるC#アプリケーションを持っています。また、テキストボックスにアイテムを表示することもでき、次のボタンと前のボタンを使用してアイテムをナビゲートできます。私は上記と呼ばれる方法がNavigateRecordsこの
MaxRows = ds1.Tables["Laptops"].Rows.Count;
ようなものである
private void btnNext_Click(object sender, EventArgs e)
{
if (inc != MaxRows - 1)
{
inc++;
NavigateRecords();
}
else
{
MessageBox.Show("You have reached the end of available items", "End of Available Items", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
場合、MaxRowsであり、次へボタンの下のように、このコードは、私がオートナンバーIDフィールドがここで
private void NavigateRecords()
{
DataRow dRow = ds1.Tables["Laptops"].Rows[inc];
txtMaker.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(1).ToString();
txtModel.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(2).ToString();
txtPrice.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(3).ToString();
txtBids.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(4).ToString();
txtScreen.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(5).ToString();
txtCPU.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(6).ToString();
txtMemory.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(7).ToString();
txtHD.Text = ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(8).ToString();
picLaptops.Image = Image.FromFile(ds1.Tables["Laptops"].Rows[inc].ItemArray.GetValue(9).ToString());
}
あります(テキストボックスにIDを入力することで)スキップして、別のテキストボックスに適切なレコードを表示できるようにする(Accessデータベースを参照してください)
私の問題は、どうすればこのことですか? NavigateRecordsのテキストボックスに正しい行が表示され、グローバルに0に設定された "inc"変数も更新される必要があります。たとえば、ユーザーがプログラムを起動し、ID 7と言うとスキップすると、そのレコードが表示されますしかし、これを行うときには、incは行番号で更新する必要があります。次のページをクリックするとid 8とid 2になります。私はこれまでこれを持っています。
あなたの2番目のコードサンプル変更private void btnSkip_Click(object sender, EventArgs e)
{
string searchFor = txtSkip.Text;
DataRow[] Skip;
int results = 0;
Skip = ds1.Tables["Laptops"].Select("ID='" + searchFor + "'");
results = Skip.Length;
if (results > 0)
{
DataRow dr1;
for (int i = 0; i < MaxRows; i++)
{
// who knows what to do here.... or getting every row is even the right thing to do...
}
}
else
{
MessageBox.Show("No item found");
}
}
idが一意である場合、Selectメソッドは1つの行のみを返すことがわかります。この問題は、SQLでは非常に簡単ですが、単純に、トップ1からラップトップのWHERE id> @currentID ORDER BY id ASCを選択することができます。次に、SELECT TOP 1 FROM Laptops WHERE id 0およびインデックス
dash
また、Windowsフォームを使用している場合は、次のものを使用できます。http://msdn.microsoft.com/en-us/library/2wcswths(v=vs.80).aspxおよびhttp://msdn.microsoft.com /en-us/library/ms158105(v=VS.80).aspxこれを行うためのフレームワークコントロールです。 – dash