Сообщение об ошибке компилятора: невозможно неявно преобразовать тип 'long' в 'string' - PullRequest
0 голосов
/ 13 июня 2011

У меня проблема с конвертацией. Что не так с этим преобразованием?

Вот ошибка:

Ошибка компиляции Описание: An во время компиляции произошла ошибка ресурса, необходимого для обслуживания этого запрос. Пожалуйста, просмотрите следующее конкретные детали ошибки и измените ваш Исходный код соответственно.

Сообщение об ошибке компилятора: CS0029: невозможно неявно преобразовать тип 'long' в 'Строка'

if (hid_Action.Value.ToString().ToUpper() == "RENEW")
{
    string strHFUpdate = string.Empty;
    string srt = Convert.ToInt64(Session["AppId"] + ",'" + Session["CAAID"].ToString() + "','" + Session["UserType"].ToString() + "'");
    strHFUpdate = "oea_sp_update_HF_MC_Renewal_Status " + srt;
    rProxy.GlobalSaveData(Session["CountyName"].ToString().Trim(), strHFUpdate.ToString());
}

Ценю вашу помощь!

Ответы [ 3 ]

3 голосов
/ 13 июня 2011
 string srt = Convert.ToInt64(...);

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

1 голос
/ 13 июня 2011

Вот проблема

string srt = Convert.ToInt64

Вы пытаетесь присвоить значение long для string.Ты не можешьВы должны использовать .ToString(), чтобы преобразовать его в строку, тогда вы сможете назначить.

И еще одна ошибка, Convert.ToInt64 не преобразует число с плавающей точкой, что означаетбросить исключение.Строка, которую вы пытаетесь преобразовать, полностью недействительна, что она должна была делать?

0 голосов
/ 13 июня 2011

Вы не можете преобразовать строку с запятыми и одинарными кавычками в число, кроме того, обе перегрузки ToInt64 () принимают второй параметр:

Ваш код выше пытается неявно преобразовать строку в другую.Тип данных, который ToInt64 () может принять для перегрузки с одним параметром.ToInt64 () поддерживает преобразование из строки, но обе эти перегрузки принимают два параметра (см. Ниже)

[Из MSDN: http://msdn.microsoft.com/en-us/library/system.convert.toint64.aspx]

ToInt64 (String, IFormatProvider) Преобразует указанное строковое представление числа в эквивалентное 64-разрядное целое число со знаком, используя указанную информацию о форматировании для конкретной культуры.

ToInt64 (String, Int32) Преобразует строковое представление числа в указанной базев эквивалентное 64-разрядное целое число со знаком.

Но, как я уже упоминал, даже если бы вы использовали правильную перегруженную функцию, ваша строка не сможет быть проанализирована из-за нечисловых символов.

...