-1

c# を使用して asp.net で Web サービスを作成しました。ここで、ユーザーから入力したいクエリを渡したいと思います。選択クエリと挿入クエリを使用してメソッドを作成しました。しかし、テキスト ボックスから入力を受け取ることはできますか?

" 従業員名を日付として選択したいのですが、日付がテキスト ボックスの値になります。よろしくお願いします

このWebサービスを実行すると、このメソッドが表示されます.しかし、このメソッドを呼び出しようとすると、「Webサイトはそのページを表示できません」というエラーが表示されます。このコードを使用しました:

    [WebMethod]
    public string GetEmps()
    {
        string s1 = txtMonth.Text;
        string getdays = "Select Emp from WorkingDaysinfo Where date = 's1'";
        con = new MySqlConnection(conString);
        con.Open();
        MySqlCommand cmd = new MySqlCommand(getdays, con);
        MySqlDataAdapter da = new MySqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);
        con.Close();

        string jsonString = JsonConvert.SerializeObject(dt);
        String finalString = "{\"EMP count\":";
        finalString += jsonString;
        finalString += "}";
        return finalString;
    }
4

2 に答える 2

1

ほとんどの場合、Web サービス コードが例外をスローしているため、ブラウザーに一般的なエラー メッセージが表示されます。Web サービス コードにブレークポイントを配置するか、try-catch ブロックを配置して例外をログに記録することで、例外の詳細を確認できます。

コードと要件に基づいて、最も可能性の高い問題は、おそらくテキスト文字列を日付列に渡していることです。Web サービス メソッドは、メソッド パラメーターを使用して一部の入力を受け入れることができ (フォームから Web サービスにコントロールを使用することはできません)、パラメーターを使用してデータベースに渡すことができます。例えば、

[WebMethod]
public string GetEmps(DateTime inputDate)
{
    // create a parameterized query
    string getdays = "Select Emp from WorkingDaysinfo Where date = @inputDate";

    con = new MySqlConnection(conString);
    con.Open();
    MySqlCommand cmd = new MySqlCommand(getdays, con);
    // pass the parameter value 
    cmd.Parameters.Add(new SqlParameter("inputDate", inputDate);

    // rest of the code follows
    ..
于 2012-04-09T09:26:20.583 に答える
0

Web サイト アプリケーションに Web サービス参照を追加し、それ自体からパラメーターを渡してみてください。

于 2012-04-09T09:39:23.707 に答える