Ошибка CS0161: не все пути кода возвращают значение

У меня есть эта ошибка. Кто-нибудь может сказать мне, почему? В ТА.cs

public class TA
{
    public TA()
    {
    }

    public static DataTable MergeTA()
    {

        DataTable myDT = new DataTable();
        myDataTable.Columns.Add("AcadYear", typeof(string));
        myDataTable.Columns.Add("NofGrp", typeof(System.Int16));
        myDataTable.Columns.Add("LecHr", typeof(int));
        ...
        ...
        ...

        DataRow myDR = myDT.NewRow();
        myDataRow["AcadYear"] = "2009";
        myDataRow["NoofGrp"] = "2";
        myDataRow["LecHr"] = "1";
        ...
        ...
        ...

        myDT.Rows.Add(myDR);
        ***return myDT;*** 

    }

}

В Display.aspx.cs

...
...
...
string strConMethod = TA.MergeTA();
        SqlConnection sqlConMethod = new SqlConnection(strConMethod);
        DataTable haha = new DataTable();
        haha = TA.MergeTA();

person Nana    schedule 22.09.2009    source источник


Ответы (3)


Вам нужно вернуть DataTable из вашего метода MergeTA. Добавьте это внизу:

return(myDT);
person Jerry Bullard    schedule 22.09.2009
comment
D'oh - опереди меня на одну секунду! Я знал, что не должен был тратить время на чтение корректуры. - person TLiebe; 22.09.2009
comment
TLiebe, впервые из десяти попыток я, наконец, получил одну из первых! Тем не менее, в настоящее время у вас больше голосов, вероятно, из-за моих парней. :-) Роберт, да, я такой странный. Возврат просто кажется чем-то, что нуждается в аргументе. Я понятия не имею, как у меня появилась эта привычка, но в 20-м веке я, должно быть, использовал компилятор C, который этого хотел. - person Jerry Bullard; 22.09.2009
comment
Спасибо за комментарий. но, делая это, у меня есть новая ошибка. Невозможно неявно преобразовать тип «System.Data.DataTable» в «строку» - person Nana; 22.09.2009
comment
Да, у меня были и другие почти идентичные ответы, которые превзошли мои. По крайней мере, я могу помочь вам с +1. - person TLiebe; 22.09.2009
comment
TLiebe, спасибо и +1 за вашу любезность и за ответ на продолжение. Хотел бы я +2. - person Jerry Bullard; 22.09.2009
comment
Ах, я действительно могу сделать этот дополнительный +1 с комментарием. Ну вот. - person Jerry Bullard; 22.09.2009

Вам нужно вернуть DataTable в конце вашей функции:

return myDT;
person TLiebe    schedule 22.09.2009
comment
Спасибо за комментарий. но, делая это, у меня есть новая ошибка. Невозможно неявно преобразовать тип «System.Data.DataTable» в «строку» - person Nana; 22.09.2009
comment
Первая строка вашего кода в Display.aspx.cs вызывает проблему. MergeTA() возвращает DataTable, и вы пытаетесь присвоить его строковой переменной. MergeTA() НЕ возвращает строку подключения - вам нужно получить строку подключения откуда-то еще (ваш файл app.config или web.config, создать его вручную или что-то еще). - person TLiebe; 22.09.2009

Похоже, вы не вернетесь myDT в конце MergeTA().

Этот метод имеет тип DataTable, поэтому все пути кода через него должны возвращать DataTable.

person JoshJordan    schedule 22.09.2009