У меня невероятно странная проблема, которую я пытался решить почти целый день, и теперь я против кирпичной стены и мне нужна помощь!
Я создал веб-сайт .NET 4 C # на своем Windows 7 ПК с недавно установленным SqlServer 2008 Express R2 , и все работает нормально.
Я загрузил базу данных и веб-сайт.
Веб-сайт теперь работает на Windows Web Server 2008 R2 (с пакетом обновления 1)
База данных находится на другом сервере под управлением Windows Server 2008 R2 Standard с SQL Server 2008
R2.
Остальная часть веб-сайта работает нормально и нормально подключается к базе данных, за исключением одной страницы, и я сузил ее до вызова хранимой процедуры, не возвращающей строк.
Я упростил вызов до этого:
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["myConn"].ToString());
SqlCommand cmd = new SqlCommand("MYSP 'param1', param2, param3", conn);
cmd.CommandType = CommandType.Text;
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
Response.Write("ROWS COUNT IN GET DS " + ds.Tables[0].Rows.Count);
conn.Close();
cmd.Dispose();
return ds;
Для любого из вышеперечисленного, если я запускаю это на своем локальном ПК для точной копии базы данных, он возвращает 2 строки, и если я запускаю его непосредственно в Sqlserver Management Studio на живом сервере, он возвращает 2 строки, но если я запустите это через ASP.net на реальном сервере, он не возвращает строк!
Может ли кто-нибудь пролить свет ??! Я схожу с ума!
Обновление , хотя я использую текст типа команды, я пробовал ее как хранимую процедуру типа команды с разделенными параметрами (как показано ниже), но это не имеет значения
cmd.CommandType = StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@param1", param1));
cmd.Parameters.Add(new SqlParameter("@param2", param2));
cmd.Parameters.Add(new SqlParameter("@param3", param3));
UPDATE
Спасибо всем за ваши комментарии!
Ответ:
Пользователь БД, который использовал веб-сайт, был установлен на "Британский английский" (по умолчанию) .. Я не осознавал этого, поскольку это новый сервер!
Везде, где есть пользователь, установлен «английский», поэтому изменение пользователя на английский исправляет это!