stellus Ответов: 3

Невозможно неявно преобразовать тип 'object' в 'string'. Существует явное преобразование (вы пропускаете приведение?)


всем привет,

я получил данную ошибку, пожалуйста, сделайте одолжение для меня...

Невозможно неявно преобразовать тип 'object' в 'string'. Существует явное преобразование (вы пропускаете приведение?)

Ошибка Источника:

Строка 256: строка verifydest_result = null;
Строка 257: verifydest_result = "";
Строка 258: verifydest_result = verifyAllocDest(TextBoxDest.Text.Trim());
Строка 259: if(verifydest_result=="1")
Строка 260: {

мой код таков :
string verifydest_result = null;
            verifydest_result = "";
            verifydest_result = verifyAllocDest(TextBoxDest.Text.Trim()).ToString();
            if(verifydest_result=="1")
            {
                int verifycount_result=0






public object verifyAllocDest(string destination)
    {
        string result = null;
        try
        {
            SqlConnection con = new SqlConnection(sqlconn_cmsstr);
            if (con.State == ConnectionState.Closed)
            {
                con.Open();
            }
            SqlCommand cmd = new SqlCommand("bms_destinationvalidate", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@Accountnumber", Session["User_id"]);
            cmd.Parameters.AddWithValue("@DestNo", destination);
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                result = "0";
                return result;
            }
            else
            {
                result = "1";
                return result;
            }
        }
        catch (Exception ex)
        {
            result = "-1";
            return result;
        }
    };

3 Ответов

Рейтинг:
6

Dylan Morley

Зачем вообще возвращать объект, если возвращаемым всегда будет строка?

Что - то еще в этом роде...

public string VerifyAllocDest(string destination)
{
    string result = null;
    try
    {
        using (var con = new SqlConnection(sqlconn_cmsstr))
        {
            con.Open();
            var cmd = new SqlCommand("bms_destinationvalidate", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@Accountnumber", Session["User_id"]);
            cmd.Parameters.AddWithValue("@DestNo", destination);

            using (var dr = cmd.ExecuteReader())
            {
                if (dr.HasRows)
                {
                    result = "0";
                }
                else
                {
                    result = "1";
                }
            }
        }
    }
    catch (Exception ex)
    {
        result = "-1";
    }
    return result;
};


fjdiewornncalwe

Тот же ответ, что и у меня для него. +5

Рейтинг:
21

Bernhard Hiller

Проблема вот в чем:
public object verifyAllocDest(string destination)
Для быстрого исправления (очень грязного!) замените object около string.
Лучшее решение включает в себя enum: вы возвращаете одно из трех возможных значений.
Следовательно определите

public enum AllocDestResult
{
    HasRows,
    HasNoRows,
    Exception
}

и используйте это перечисление вместо a string.


fjdiewornncalwe

У тебя тоже получилось. +5. тот же ответ я дал.

Рейтинг:
13

fjdiewornncalwe

public object verifyAllocDest(string destination)

должна стать
public string verifyAllocDest(string destination)

или
verifydest_result = verifyAllocDest(TextBoxDest.Text.Trim()).ToString();


stellus

спасибо, теперь он работает нормально...

ridoy

+5