vidya jobin Ответов: 1

Столкновение типов операндов: int несовместимо с датой


Мой код

ed = 1;
con = new SqlConnection(conn);
UID = логин.ИДЕНТИФИКАТОР UID;
ДТ датавремя = Датавремя.Сейчас;
чар секс;
int s;
если(rbtmale.Проверено= = верно)
{
секс= "м";
}
еще
{
секс= 'F';
}
если (rbtactive .Проверено = = верно)
{
s = 1;
}
еще
{
s = 0;
}

если (txtsname.Текст!=""||txtadd.Текст!=""||txtdob.Text ! =""| / txtcdate.Текст!=""||txtdoj.Текст!=""||txtdown.Текст!=""||txtrfee.Текст!="")
{
cmd = new SqlCommand ("вставить в регистрацию values(@reg,@sname,@add,@gen,@dob,@ph,@qul,@gau,@cid,@ctid,@cdur,@cfee,@doj,@ccdate,@regFee,@dpay,@ss,@uid,@crdate,@upuid,@update,1)", кон);
против.Открыть();
УМК.Параметры.AddWithValue ("@reg", txtreg. Text);
УМК.Параметры.AddWithValue ("@sname", txtsname.Текст);
УМК.Параметры.AddWithValue ("@add", txtadd. Text);
УМК.Параметры.AddWithValue ("@gen", sex);
УМК.Параметры.AddWithValue ("@dob", SqlDbType.DateTime).Значение=dateTimePicker1.Значение.Дата ;
//cmd.параметры.AddWithValue ("@dob", Convert.Объект todatetime(txtdob.Текст));
УМК.Параметры.AddWithValue ("@ph", txtph. Text);
УМК.Параметры.AddWithValue ("@qul", Convert.ToInt32(cmbqua.Выбранное значение.Метод toString()));
УМК.Параметры.AddWithValue ("@gau", txtgurd. Text);
УМК.Параметры.AddWithValue ("@cid", Convert.ToInt32(cmbcourse.Выбранное значение.Метод toString()));
УМК.Параметры.AddWithValue ("@ctid", Convert.ToInt32(cmbcat.Выбранное значение.Метод toString()));
УМК.Параметры.AddWithValue ("@cdur", txtduration.Текст);
УМК.Параметры.AddWithValue ("@cfee", Convert.Метод todouble(txtfee.Текст));
// cmd.параметры.AddWithValue ("@doj", Convert.Объект todatetime(txtdoj.Текст));
УМК.Параметры.AddWithValue ("@doj", SqlDbType.DateTime).Значение = dateTimePicker2.Значение.Дата;
// cmd.параметры.AddWithValue ("@ccdate", Convert.Объект todatetime(txtcdate.Текст));
УМК.Параметры.AddWithValue("@ccdate", SqlDbType.DateTime).Значение = txtcdate.Текст;
УМК.Параметры.AddWithValue ("@regFee", Convert.ToDouble(txtrfee. Text));
УМК.Параметры.AddWithValue ("@dpay", Convert.Метод todouble(txtdown.Текст));
УМК.Параметры.AddWithValue ("@ss", s);
УМК.Параметры.AddWithValue ("@uid", UID);
УМК.Параметры.AddWithValue ("@crdate", dt);
УМК.Параметры.AddWithValue ("@upuid", UID);
УМК.Параметры.AddWithValue ("@update", dt);
УМК.Метод executenonquery();
против.Закрывать();
Ящик для сообщений.Show ("Запись Успешно Вставлена");
DisplayData();
enabledisable();
ClearData();
}


структура моей таблицы
RegNo	nvarchar(7)	Unchecked
sname	nvarchar(100)	Unchecked
address	nvarchar(100)	Unchecked
gender	char(1)	Unchecked
DOB	datetime	Unchecked
Phone	nchar(10)	Unchecked
qualification	nvarchar(50)	Unchecked
gaurdian	nvarchar(100)	Checked
CourseID	int	Unchecked
Catid	int	Unchecked
Cduration	nchar(10)	Unchecked
Cfee	numeric(18, 2)	Unchecked
DOJ	datetime	Unchecked
CCDate	datetime	Unchecked
regFee	decimal(18, 2)	Unchecked
DownPay	decimal(18, 2)	Unchecked
StuStatus	int	Unchecked
createdDate	date	Unchecked
createUser	int	Unchecked
updatedUser	int	Unchecked
updatedDate	date	Unchecked
statuse	int	Unchecked


Что я уже пробовал:

ed = 1;
            con = new SqlConnection(conn);
            UID = Login.UID;
            DateTime dt = DateTime.Now;
            char sex;
            int s;
            if(rbtmale.Checked==true)
            {
                sex='M';
            }
            else
            {
                sex='F';
            }
            if (rbtactive .Checked == true)
            {
                s = 1;
            }
            else
            {
                s = 0;
            }
           
            if (txtsname.Text!=""||txtadd.Text!=""||txtdob.Text !=""||txtcdate.Text!=""||txtdoj.Text!=""||txtdown.Text!=""||txtrfee.Text!="")
            {
                cmd = new SqlCommand("insert into Registration values(@reg,@sname,@add,@gen,@dob,@ph,@qul,@gau,@cid,@ctid,@cdur,@cfee,@doj,@ccdate,@regFee,@dpay,@ss,@uid,@crdate,@upuid,@update,1)", con);
                con.Open();
                cmd.Parameters.AddWithValue("@reg", txtreg.Text);
                cmd.Parameters.AddWithValue("@sname", txtsname.Text);
                cmd.Parameters.AddWithValue("@add", txtadd.Text);
                cmd.Parameters.AddWithValue("@gen", sex);
              cmd.Parameters.AddWithValue("@dob", SqlDbType.DateTime).Value=dateTimePicker1.Value.Date ;
                //cmd.Parameters.AddWithValue("@dob", Convert.ToDateTime(txtdob.Text));
                cmd.Parameters.AddWithValue("@ph", txtph.Text);
                cmd.Parameters.AddWithValue("@qul", Convert.ToInt32(cmbqua.SelectedValue.ToString()));
                cmd.Parameters.AddWithValue("@gau", txtgurd.Text);
                cmd.Parameters.AddWithValue("@cid", Convert.ToInt32(cmbcourse.SelectedValue.ToString()));
                cmd.Parameters.AddWithValue("@ctid", Convert.ToInt32(cmbcat.SelectedValue.ToString()));
                cmd.Parameters.AddWithValue("@cdur",txtduration.Text);
                cmd.Parameters.AddWithValue("@cfee",Convert.ToDouble(txtfee.Text));
               // cmd.Parameters.AddWithValue("@doj",Convert.ToDateTime(txtdoj.Text));
                cmd.Parameters.AddWithValue("@doj", SqlDbType.DateTime).Value = dateTimePicker2.Value.Date;
              // cmd.Parameters.AddWithValue("@ccdate",Convert.ToDateTime(txtcdate.Text));
                cmd.Parameters.AddWithValue("@ccdate", SqlDbType.DateTime).Value = txtcdate.Text;
                cmd.Parameters.AddWithValue("@regFee", Convert.ToDouble(txtrfee .Text));
                cmd.Parameters.AddWithValue("@dpay",Convert.ToDouble(txtdown.Text));
                cmd.Parameters.AddWithValue("@ss", s);
                cmd.Parameters.AddWithValue("@uid", UID);
                cmd.Parameters.AddWithValue("@crdate", dt);
                cmd.Parameters.AddWithValue("@upuid", UID);
                cmd.Parameters.AddWithValue("@update", dt);
                cmd.ExecuteNonQuery();
                con.Close();
                MessageBox.Show("Record Inserted Successfully");
             DisplayData();
             enabledisable();
               ClearData();
            }



кто-нибудь мне поможет...пожалуйста, решите эту ошибку

Richard Deeming

Репост
Вы уже опубликовали это:
https://www.codeproject.com/Questions/1208456/Operand-type-clash-int-is-incompatible-with-date-i[^]

Ответ не изменился за последние четыре дня!

1 Ответов

Рейтинг:
0

OriginalGriff

Поскольку вы не перечисляете столбцы, в которые вставляете, SQL сначала начинает с TE и передает значения по мере их поступления.
И ваши данные не совпадают с таблицей:

...,@dpay,@ss,@uid,@crdate,@upuid,...

cmd.Parameters.AddWithValue("@dpay",Convert.ToDouble(txtdown.Text));
cmd.Parameters.AddWithValue("@ss", s);
cmd.Parameters.AddWithValue("@uid", UID);
cmd.Parameters.AddWithValue("@crdate", dt);
cmd.Parameters.AddWithValue("@upuid", UID);

DownPay	decimal(18, 2)	Unchecked
StuStatus	int	Unchecked
createdDate	date	Unchecked
createUser	int	Unchecked
Поэтому SQ пытается поместить ваше значение uid в столбец createdDate и не может.

Всегда перечисляйте имена столбцов: это может показаться гораздо большей работой, но в будущем это защитит ваше приложение от изменений БД, а также предотвратит подобные проблемы.
INSERT INTO MyTable (Column1, Column2) VALUES (@C1, @C2)