Я занимаюсь службой сокращения URL-адресов. Но в настоящее время я столкнулся с проблемой. Когда я попытался ввести URL, например:URL-адрес перенаправления из базы данных
HTTP:/локальный: 4021/книга/статья
Предполагается перенаправить меня к длинному URL, как, например:
Но когда я ввожу сокращенный URL-адрес, он не может перенаправляться.
Следующий мой код. Что не так?
string query;
string name = Page.RouteData.Values["Name"] as string;
string str = "Data Source=blankblankblank;Initial Catalog=URLSHORT;User ID=blank;Password=blank";
SqlConnection con = new SqlConnection(str);
con.Open();
query = "SELECT @long_url FROM dbo.url_map WHERE @short_url='" + name + "'";
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.Add("short_url", SqlDbType.VarChar).Value = tbShort.Text;
cmd.Parameters.Add("long_url", SqlDbType.VarChar).Value = tbLong.Text;
cmd.CommandText = string.Format("SELECT @long_url FROM dbo.url_map WHERE @short_url='" + name + "'");
if(name != null)
{
else if (name == cmd.ExecuteNonQuery().ToString())
{
Response.StatusCode = 303;
Response.Status = "303 Moved Permanently";
Response.RedirectLocation = "http://www.youtube.com";
Response.End();
}
Пожалуйста, убедитесь, что ваш образец несколько верен. Прямо сейчас есть некоторый недостающий код в 'if (name! = Null) ...'. –
вся ваша программа неверна. ExecuteNonQuery() не работает с оператором select и что заставляет вас писать строку запроса дважды @ qU3st – Rezoan
Можете ли вы опубликовать свой фактический код? Кажется, что вещи пропали без вести. Например, есть два '{' s и один '}'. –