• 0

كيف أحلّ مشكلة جملة استعلام Sql على تطبيق #C؟

عند اسعمالي لجملة الاستعلام التالية على #C:

INSERT INTO tem (Telephone, Status, CreateDate) 
VALUES ('" + telephone + "','"+ status +"','" + DateTime.Now + "');

لكن أحصل على رسالة الخطأ :

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. The statement has been terminated.

ما الحل؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

المشكل أنه في جمل الاستعلام من هذا النوع يجب استعمال  'parametrized queries'  والتي تمكنك من استعمال القيم عن طريق علامات ومتغيرات تبدأ بعلامة@، مثلا 'Telephone@' على أن يتم إعطاء قيمة لهذه العلامة فيما بعد.

حيث أقترح عليك لاستعمال هذا السكريبت عوض السابق:'

// تعريف جملة الاستعلام 
string connectionStirng = ".....";
string insertQry = "INSERT INTO tem (Telephone, Status, CreateDate) VALUES (@Telephone, @Status, @CreateDate);";

 
using (SqlConnection conn = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(insertQry, conn))
{
    //   parameters العلامات
    cmd.Parameters.Add("@Telephone", SqlDbType.VarChar, 50).Value = telephone;
    cmd.Parameters.Add("@Status", SqlDbType.VarChar, 20).Value = status;
    cmd.Parameters.Add("@CreateDate", SqlDbType.DateTime).Value = DateTime.Now;

    //  ، وتنفيذ حملة الاستعلام connection فتح
    conn.Open();
    int rowsInserted = cmd.ExecuteNonQuery();
    conn.Close();
}

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن