Как установить SeletCommand asp: SqlDataSource внутри статического метода? - PullRequest
0 голосов
/ 02 мая 2019

Я пытался установить SeletCommand asp: SqlDataSource внутри статического метода, но он показал мне сообщение об ошибке «System.NullReferenceException: ссылка на объект не установлена ​​на экземпляр объекта».

namespace TestSPA
{
    public partial class editor1 : System.Web.UI.Page
    {
        [WebMethod]
        [ScriptMethod]
        public static string SelectDataFromSearch(string keyWord)
        {
            string result = "";

            Model.MyDataConnection mdc1 = new Model.MyDataConnection();
            OleDbConnection conn1 = new OleDbConnection();
            OleDbCommand cmd1 = new OleDbCommand();
            conn1.ConnectionString = mdc1.ConnectonString;
            cmd1.Connection = conn1;

            try
            {
                conn1.Open();
                editor1 ed = new editor1();

                //Here is where the error line.
                ed.dsWSE.SelectCommand = "SELECT * FROM [News] WHERE [Title] LIKE '%" + keyWord + "%' OR [Intro] LIKE '%" + keyWord + "%' OR [Story] LIKE '%" + keyWord + "%' ORDER BY [DateModified] DESC";
                //Here is where the error line.

                conn1.Close();
                result = keyWord;
            }
            catch (Exception err)
            {
                result = err.ToString();
            }

            return result;
        }
    }
}

И ниже мой jQuery для вызова вышеуказанного серверного метода с использованием Ajax

            $("#TxbSearch").on("keyup", function (e) {
                e.preventDefault();
                var text = $(this).val();
                console.info(text);
                $.ajax({
                    type: "POST",
                    url: "editor.aspx/SelectDataFromSearch",
                    data: "{'keyWord':'" + text + "'}",
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                    success: function (res) {
                        console.log(res.d);

                        $("#gvNews").load(location.href + " #gvNews");
                    },
                    error: function (xhr, status, error) {
                        $("#model-error-message").html(error);
                        $("#ModelError").modal('show')
                        console.log(error);
                    }
                });
            });

. #TxbSearch - это идентификатор TextBox, который должен передать свое значение в имя метода сервера «SelectDataFromSearch», в то время как событие «keyup»происходит, затем обновите GridView, чтобы показать результаты поиска.

Пожалуйста, помогите.

...