У меня есть некоторые проблемы с подключением к базе данных и интересно, есть ли у меня что-то не так в моем коде. Пожалуйста ознакомтесь. Этот вопрос связан: Switch between databases, use two databases simultaneously вопрос.Правильный код для извлечения данных из базы данных SQL Server
cs="Data Source=mywebsite.com;Initial Catalog=database;User Id=root;Password=toor;Connect Timeout=10;Pooling='true';"
using (SqlConnection cnn = new SqlConnection(WebConfigurationManager.ConnectionStrings["cs"].ConnectionString))
{
using (SqlCommand cmmnd = new SqlCommand("", cnn))
{
try
{
cnn.Open();
#region Header & Description
cmmnd.Parameters.Add("@CatID", SqlDbType.Int).Value = catId;
cmmnd.CommandText = "SELECT UpperID, Title, Description FROM Categories WHERE [email protected];";
string mainCat = String.Empty, rootCat = String.Empty;
using (SqlDataReader rdr = cmmnd.ExecuteReader())
{
if (rdr.Read())
{
mainCat = rdr["Title"].ToString();
upperId = Convert.ToInt32(rdr["UpperID"]);
description = rdr["Title"];
}
else { Response.Redirect("/", false); }
}
if (upperId > 0) //If upper category exists add its name
{
cmmnd.Parameters["@CatID"].Value = upperId;
cmmnd.CommandText = "SELECT Title FROM Categories WHERE [email protected];";
using (SqlDataReader rdr = cmmnd.ExecuteReader())
{
if (rdr.Read())
{
rootCat = "<a href='x.aspx'>" + rdr["Title"] + "</a> » ";
}
}
}
#endregion
#region Sub-Categories
if (upperId == 0) //show only at root categories
{
cmmnd.Parameters["@CatID"].Value = catId;
cmmnd.CommandText = "SELECT Count(CatID) FROM Categories WHERE [email protected];";
if (Convert.ToInt32(cmmnd.ExecuteScalar()) > 0)
{
cmmnd.CommandText = "SELECT CatID, Title FROM Categories WHERE [email protected] ORDER BY Title;";
using (SqlDataReader rdr = cmmnd.ExecuteReader())
{
while (rdr.Read())
{
subcat.InnerHtml += "<a href='x.aspx'>" + rdr["Title"].ToString().ToLower() + "</a>\n";
description += rdr["Title"] + ", ";
}
}
}
}
#endregion
}
catch (Exception ex) { HasanG.LogException(ex, Request.RawUrl, HttpContext.Current); Response.Redirect("/", false); }
finally { cnn.Close(); }
}
}
Случайные ошибки я получаю являются:
- Ошибка транспортного уровня произошла при отправке запроса на сервер. (поставщик: поставщик TCP, ошибка: 0 - существующее соединение было принудительно закрыто удаленным хостом.)
- При установлении соединения с SQL Server возникла связанная с сетью или конкретная ошибка экземпляра. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения. (поставщик: поставщик Named Pipes, ошибка: 40 - не удалось открыть соединение с SQL Server)
- Истекло время ожидания. Период ожидания истекает до получения соединения из пула. Возможно, это произошло из-за того, что все объединенные соединения использовались и максимальный размер пула был достигнут.
- Не удается открыть базу данных "db", запрошенную при входе в систему. Ошибка входа в систему. Ошибка входа для пользователя «root».
Что вы думаете ?? – egrunin
Правильно ли код, и у меня есть ошибки? –
Что происходит, когда вы пытаетесь запустить его? Мы не можем проверить это для вас. Кроме того, почему вы говорите, что это имеет какое-то отношение к проблеме с двумя базами данных? Здесь есть только одна база данных. – egrunin