Home > Back-end >  System.Data.SqlClient.SqlException: 'The conversion of a nvarchar data type to a datetime data
System.Data.SqlClient.SqlException: 'The conversion of a nvarchar data type to a datetime data

Time:07-29

protected void Button3_Click(object sender, EventArgs e)
    {
        SqlCommand cmd = new SqlCommand("UPDATE PersonelBilgileri set ad=@ad,soyad=@soyad,DogumTarihi=@DogumTarihi,Telefon=@Telefon,Maas=@Maas,TcNo=@TcNo,GirisTarihi=@GirisTarihi,CıkısTarihi=@Cıkıstarihi WHERE PersonelID=3",baglan);
        cmd.Parameters.AddWithValue("PersonelID", txtPersonelId.Text);
        cmd.Parameters.AddWithValue("Ad", txtAd.Text);
        cmd.Parameters.AddWithValue("Soyad", txtSoyad.Text);
     cmd.Parameters.AddWithValue("DogumTarihi",DateTime.Now.ToString());
        cmd.Parameters.AddWithValue("Telefon", txtTelefon.Text);
        cmd.Parameters.AddWithValue("Maas", txtMaas.Text);
        cmd.Parameters.AddWithValue("TcNo", txtTckno.Text);
     cmd.Parameters.AddWithValue("GirisTarihi",DateTime.Now.ToString());
     cmd.Parameters.AddWithValue("CıkısTarihi",DateTime.Now.ToString());
        cmd.ExecuteNonQuery();
    }

CodePudding user response:

It looks the database is using datetime for the fields with DateTime.Now. So you will need to set the parameter as a Datetime

You can add this method again assuming it is DateTime. ( you need to check your Procedure as it could be Datetime2 or Date)

private static SqlParameter ToSqlParameterDateTime(DateTime? input, string strParameterName)
{
    var sqlparam = new SqlParameter(strParameterName, SqlDbType.DateTime)
    {
        Direction = ParameterDirection.Input
    };
    if (input.HasValue)
        sqlparam.Value = input;
    else
    {
        sqlparam.Value = DBNull.Value;
    }
    return (sqlparam);
}      

Then change your method to be

protected void Button3_Click(object sender, EventArgs e)
    {
        SqlCommand cmd = new SqlCommand("UPDATE PersonelBilgileri set ad=@ad,soyad=@soyad,DogumTarihi=@DogumTarihi,Telefon=@Telefon,Maas=@Maas,TcNo=@TcNo,GirisTarihi=@GirisTarihi,CıkısTarihi=@Cıkıstarihi WHERE PersonelID=3",baglan);
        cmd.Parameters.AddWithValue("PersonelID", txtPersonelId.Text);
        cmd.Parameters.AddWithValue("Ad", txtAd.Text);
        cmd.Parameters.AddWithValue("Soyad", txtSoyad.Text);
        cmd.Parameters.Add(ToSqlParameterDateTime(DateTime.Now, “DogumTarihi"));
        cmd.Parameters.AddWithValue("Telefon", txtTelefon.Text);
        cmd.Parameters.AddWithValue("Maas", txtMaas.Text);
        cmd.Parameters.AddWithValue("TcNo", txtTckno.Text);
        cmd.Parameters.Add(ToSqlParameterDateTime(DateTime.Now, “GirisTarihi"));
        cmd.Parameters.Add(ToSqlParameterDateTime(DateTime.Now, “CıkısTarihi"));
        cmd.ExecuteNonQuery();
    }
  • Related