ASP.Net вставка данных из формы в базу данных Исключение - PullRequest
0 голосов
/ 18 декабря 2011

Я пытаюсь вставить данные из формы в базу данных и выдает эту ошибку:

Нет сопоставления между типом объекта System.Web.UI.WebControls.TextBox и собственным типом известного управляемого поставщика.

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

Вот код:

    protected void Button1_Click(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection("Data Source=MICROSOF-58B8A5\\SQL_SERVER_R2;Initial Catalog=Movie;Integrated Security=True");
        conn.Open();

        string titleName = Title.Text;
        string sqlQuery = ("INSERT INTO Movies(Ganere, Title, Descreption) VALUES (@Ganere, @Title , @Descreption) ");

        SqlCommand cmd = new SqlCommand(sqlQuery, conn);
        cmd.Parameters.AddWithValue("Title", Title);

        string genre = GenreDropDown.SelectedIndex.ToString();
        cmd.Parameters.AddWithValue("Ganere", GenreDropDown);

        string descp = Descreption.Text;
        cmd.Parameters.AddWithValue("Descreption", Descreption);

        if (titleName == null || genre == null)
        {
            ErrorMessege.Text = "Please fill all of the fields.";
        }
        else
        {
            ErrorMessege.Text = "You have successfully add a movie!";
            cmd.ExecuteNonQuery();
        }

        conn.Close();
    }

Ответы [ 2 ]

2 голосов
/ 18 декабря 2011

Вы не использовали ни одного из переменных, в которых у вас были значения

    string titleName = Title.Text;
    string sqlQuery = ("INSERT INTO Movies(Ganere, Title, Descreption) VALUES (@Ganere, @Title , @Descreption) ");

    SqlCommand cmd = new SqlCommand(sqlQuery, conn);
    cmd.Parameters.AddWithValue("Title", titlename);

    string genre = GenreDropDown.SelectedIndex.ToString();
    cmd.Parameters.AddWithValue("Ganere", genre);

    string descp = Descreption.Text;
    cmd.Parameters.AddWithValue("Descreption", descp);

    if (titleName == null || genre == null)
    {
        ErrorMessege.Text = "Please fill all of the fields.";
    }
    else
    {
        ErrorMessege.Text = "You have successfully add a movie!";
        cmd.ExecuteNonQuery();
    }

    conn.Close();
}
1 голос
/ 18 декабря 2011

Проблема в том, что вы пытаетесь использовать все текстовое поле в качестве значения параметра.

Изменение:

cmd.Parameters.AddWithValue("Title", Title);

до

cmd.Parameters.AddWithValue("Title", Title.Text);
...