0

わかりましたので、テキスト ボックスと、数字を入力してボタンを押すボタンがあります。次に、値が見つかったかどうかを示すメッセージ ボックスを表示します。

すべての関数をモデル クラスに配置してから、それらを GUI 部分で呼び出します。私が試したものは次のとおりです。SQL関数(チケットはテーブルの名前で、IDは見つけようとしている値です):

  public void rebateslip(int ticketID)
    {
        SqlCommand myCommand  = new SqlCommand("SELECT ID FROM ticket WHERE ID = @ticketID", con);
        SqlDataAdapter sqlDa = new SqlDataAdapter(myCommand);

        myCommand.Parameters.AddWithValue("@ID", ticketID);


    }

ボタンイベントハンドラよりも、私はこれを持っています:

 private void buttonPrintRebateSlip_Click(object sender, EventArgs e)
    {

            if (textBoxRebateSlip = model.rebateslip(ticketID)
            {
                MessageBox.Show("Found ticket");
            }
            else
            {
                MessageBox.Show("Ticket not in database");
            }

    }

しかし、チケットIDが存在しないと言われています

4

4 に答える 4

1

パラメータの名前ticketIDは であり、ID

したがって、次のように変更する必要があります。

 myCommand.Parameters.AddWithValue("@ticketID", ticketID);
于 2013-01-30T17:32:59.367 に答える
0

if (textBoxRebateSlip = = model.rebateslip(ticketID)

于 2013-01-30T17:36:20.880 に答える
0

If ステートメントが正しくありません。閉じ括弧が欠落しており、比較も有効ではありません。== を使用して比較します。さらに、 ticketID 変数はどこにも初期化されていません。あなたの説明から、テキストボックスから取得しているように聞こえますか? もしそうなら、それは次のようなものでなければなりません:

int id = Convert.ToInt32(textBoxRebateSlip .Text);

if (model.rebateslip(ticketID) == id)

...

私が気付いたもう1つのことは、SQLコマンドをどこでも実行していないということですか?

また、rebateslip メソッドは戻り値の型が void であるため、動作しません。

これらすべてのエラーがあると、このコードはコンパイルさえできません。

于 2013-01-30T17:41:51.457 に答える
0

model.rebateslipを返すようにメソッドを変更boolし、コマンドを実行すると、多かれ少なかれ次のようになります: (SqlCommand メソッドも読者のメソッドも考慮していませんが、私の記憶によるとこれ)

public bool rebateslip(int ticketID)
{
    SqlCommand myCommand  = new SqlCommand("SELECT ID FROM ticket WHERE ID = @ticketID", con);
    SqlDataAdapter sqlDa = new SqlDataAdapter(myCommand);

    myCommand.Parameters.AddWithValue("@ticketID", ticketID);
    var reader = myCommand.Execute();
    return reader.HasRows;    
}

次に、@Ezekielが彼の答えで言ったようなことをする必要があります:

int id;
if (!int.TryParse(textBoxRebateSlip.Text, out id)) return;

if (model.rebateslip(id))
...
于 2013-01-30T17:46:46.767 に答える