ссылка на объект требуется для метода нестатического поля или свойства

#c# #asp.net

#c# #asp.net

Вопрос:

 [System.Web.Services.WebMethod]
public static void GetCurrentTime(string name)
{
    string strFileName = "D://Data.csv";
    string connectionstring = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:;Extended Properties='text;HDR=Yes;FMT=Delimited';";
    OleDbConnection connection = new OleDbConnection();
    connection.ConnectionString = connectionstring;
    OleDbCommand command = new OleDbCommand();
    command.CommandType = CommandType.Text;
    command.Connection = connection;

    if (name != "")
    {
        command.CommandText = "select * from "   System.IO.Path.GetFileName(strFileName);//  " where F="   txtmtcn.Text;
        connection.Open();
        DataTable dt = new DataTable();
        dt.Load(command.ExecuteReader());
        dt.Columns[5].ColumnName = "MTCN";
        dt.DefaultView.RowFilter = " MTCN ="   name;
        dt = dt.DefaultView.ToTable();
        TxtSenderFirstName.Text = dt.Rows[0][7].ToString();
        connection.Close();
    }
}
  

я получаю сообщение об ошибке «ссылка на объект требуется для метода нестатического поля или свойства» как я получу доступ к элементам управления текстового поля и заполню в них данные.

Ответ №1:

Я предполагаю, что ошибка находится в этой строке:

 TxtSenderFirstName.Text = dt.Rows[0][7].ToString();
  

Вы не можете получить доступ к полям экземпляра из статического метода. В вашем случае вы не можете получить доступ к элементам управления пользовательского интерфейса из ASP.NET Метод страницы. Для достижения этого вы могли бы изменить свой метод страницы, чтобы возвращать результат, а затем назначить его со стороны клиента соответствующему полю.

Комментарии:

1. но я не могу использовать таблицу данных на стороне clint, а в файле csv имена столбцов недоступны, мой файл — «Файл значений, разделенных запятыми Microsoft Office Excel», я пытался сделать это в Java script, но, похоже, невозможно прочитать конкретные данные, поскольку я новичок в разработке

2. @RaniaUmair, запрос CSV-файла по-прежнему будет выполняться на сервере, вы только вернете результат клиенту return dt.Rows[0][7].ToString(); . Затем на клиенте, используя javascript, вы присвоите этот результат соответствующему элементу DOM.

3. мне просто нужно заполнить значения из CSV-файла из javascript, для меня это было сложно, поэтому я вызываю pagemethod в java script, но в текстовом поле c # code недоступен