StackOverflow - я все еще пытаюсь развернуть этот сайт, но с каждой проблемой, которую я решаю, возникает другая. В любом случае - я настроил базу данных на своем хостинге, чтобы разрешить удаленные подключения, и она работает под управлением Sql Server 2005. На моей машине для разработки я работаю с Sql Server 2008.
Я установил схему asp.net в своей размещенной базе данных и создал несколько пользователей из интерфейса веб-администрирования ASP.NET, а также проверил, работает ли вход в систему. Локальный запуск приложения со строкой удаленного соединения дает те же результаты. Тем не менее, я могу запускать свои сценарии и генерировать свои таблицы и хранимые процедуры без ошибок, но когда сайт запущен, я получаю следующую ошибку на всех моих страницах .aspx, которые пытаются получить доступ к хранимой процедуре:
Server Error in '/' Application.
Incorrect syntax near 'LoadProfileData'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: Incorrect syntax near 'LoadProfileData'.
Source Error:
Line 62: adapter.SelectCommand.Parameters.Add("@ProfessionalName", SqlDbType.VarChar).Value = professionalName;
Line 63: DataSet profile = new DataSet();
Line 64: adapter.Fill(profile, "Profile");
Line 65: return profile;
Line 66: }
Это возможная проблема Sql 2005 против 2008? Я надеюсь, что кто-то еще видел эту проблему в похожем сценарии и может указать мне правильное направление. Сервер работает под управлением asp.net 2.0, 3.0 и 3.5 и IIS 7.0.
Хранимая процедура:
-- =============================================
-- Create date: <July 2010>
-- Description: <Create default Professional Profile>
-- =============================================
Drop procedure CreateDefaultProfile
GO
Create procedure CreateDefaultProfile(@UserName varchar(256))
as
declare @ProfessionalID uniqueidentifier
set @ProfessionalID = (select UserId from aspnet_Users where UserName = @UserName)
declare @email varchar(256)
set @email = (select Email from aspnet_Membership where UserId = @ProfessionalID)
insert into Professional(ProfessionalID, Name, Email, Phone, TypeID, DisplayPictureUrl, ProfileHeader, ProfileSubHeader, ProfileContent, ServicesHeader, ServicesContent)
values (@ProfessionalID, '', @email, '', '', 'css/img/profilepicture_default.jpg', '', '', '', '', '')
GO
-- exec CreateDefaultProfile 'Mounir'
-- select * from Professional
Метод уровня доступа к данным:
//"Data Source=localhost;Initial Catalog=MHNProServices;Integrated Security=SSPI"
const string ConnectionString =
"Data Source=mhnproservices.db.5322869.hostedresource.com; Initial Catalog=mhnproservices; User ID=mhnproservices; Password='***********'";
internal static void CreateDefaultProfile(string professionalName)
{
SqlConnection conn = new SqlConnection(ConnectionString);
SqlDataAdapter adapter = new SqlDataAdapter("CreateDefaultProfile @ProfessionalName", conn);
adapter.SelectCommand.Parameters.Add("@ProfessionalName", SqlDbType.VarChar).Value = professionalName;
conn.Open();
adapter.SelectCommand.ExecuteNonQuery();
conn.Close();
}