Вставьте данные в таблицу SQL Server 2008 из формы в C # - PullRequest
1 голос
/ 06 марта 2012

Вот что я сделал:

protected void btnsave_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection("Data Source=user-ade4de77d3;Initial Catalog=test;Persist Security Info=True;uid=sa;pwd=sql2008");
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = con;
    con.Open();
    cmd.CommandText = ("INSERT  into person VALUES (@empid,@name,@sex,@mstatus,@empstat,@dob,@doh,@dor,@dot)");
    cmd.Parameters.AddWithValue("@empid", txtid.Text);
    cmd.Parameters.AddWithValue("@name", txtnam);
    cmd.Parameters.AddWithValue("@sex", dpsex.SelectedValue);
    cmd.Parameters.AddWithValue("@mstatus", dpmstat.SelectedValue);
    cmd.Parameters.AddWithValue("@empstat", dpstatus.SelectedValue);
    cmd.Parameters.AddWithValue("@dob", txtdob.Text );
    cmd.Parameters.AddWithValue("@doh", txtdoh.Text );
    cmd.Parameters.AddWithValue("@dor", txtdor.Text );
    cmd.Parameters.AddWithValue("@dot", txtdot.Text );
    cmd.ExecuteNonQuery();
    con.Close();
}

Я получаю сообщение об ошибке, подобное этому:

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

Как мне убрать эту ошибку?

Ответы [ 6 ]

1 голос
/ 06 марта 2012

Вам необходимо изменить следующую строку:

cmd.Parameters.AddWithValue("@name", txtnam.Text);

, поскольку в вашей версии отсутствует .Text с конца.

0 голосов
/ 16 января 2013

Вы забыли добавить .Text в этой строке:

cmd.Parameters.AddWithValue("@name", txtnam);

изменить на:

cmd.Parameters.AddWithValue("@name", txtnam.Text);
0 голосов
/ 06 марта 2012

Ошибка проста.Вы забыли получить свойство text для txtnam, поэтому передаете весь объект textbox вместо его значения.

txtnam.text
0 голосов
/ 06 марта 2012

Вам, вероятно, нужен txtnam.Text

cmd.Parameters.AddWithValue("@name", txtnam.Text); 
0 голосов
/ 06 марта 2012

Мне кажется, проблема в следующей строке:

cmd.Parameters.AddWithValue("@name", txtnam);

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

Использованиеэто вместо:

cmd.Parameters.AddWithValue("@name", txtnam.Text);
0 голосов
/ 06 марта 2012

Ваша линия

cmd.Parameters.AddWithValue("@name", txtnam);

должна быть

cmd.Parameters.AddWithValue("@name", txtnam.text);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...