【解決方法】オブジェクト型 system.windows.forms.datetimepicker から既知のマネージ プロバイダーのネイティブ型へのマッピングは存在しません


現在のフォームの実行中に未処理の例外が発生しました。 エラーの詳細とコード内のどこで発生したかについては、スタック トレースを確認してください。
私に提案してください。

私が試したこと:

以下のコードで試しました。

C#
private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtAdmissionNo.Text == "")
                {
                    MessageBox.Show("Please Select Student's  AdmissionNo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txtAdmissionNo.Focus();
                    return;
                }
                Calculate1();
                String ConnectionString = ConfigurationManager.ConnectionStrings["WinLogconn"].ConnectionString.ToString();
                SqlConnection con = new SqlConnection(ConnectionString);
                
                string cb = @"INSERT INTO tbl_CourseFeePayment(FeePayementID,AdmissionNo,StudentName,Class,Section,SessionYear,PreviousDue,PaymentDate,ModeOfPayment,Fees,PaymentModeDetails,Fine,TotalPaid,CurrentDue)VALUES (@d1,@d2,@d3,@d4,@d5,@d6,@d7,@d8,@d9,@d10,@d11,@d12,@d13,d14)";
                cmd = new SqlCommand(cb);
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@FeePayementID", FeePaymentID.Text);
                cmd.Parameters.AddWithValue("@AdmissionNo", txtAdmissionNo.Text);
                cmd.Parameters.AddWithValue("@StudentName", txtStudentName.Text);
                cmd.Parameters.AddWithValue("@Class", txtclass.Text);
                cmd.Parameters.AddWithValue("@Section", txtSection.Text);
                cmd.Parameters.AddWithValue("@SessionYear", txtSession.Text);
                cmd.Parameters.AddWithValue("@PreviousDue", txtPrevDue.Text);
                cmd.Parameters.AddWithValue("@PaymentDate", dtpPaymentDate.Text);
                cmd.Parameters.AddWithValue("@ModeOfPayment", txtModeOfPayment.Text);
                cmd.Parameters.AddWithValue("@Fees", txtFee);
                cmd.Parameters.AddWithValue("@PaymentModeDetails", txtPaymentModeDetails.Text);
                cmd.Parameters.AddWithValue("@Fees", txtFine.Text);
                cmd.Parameters.AddWithValue("@TotalPaid", txtTotalPaid.Text);
                cmd.Parameters.AddWithValue("@CurrentDue", txtCurentDueFees.Text);
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
                MessageBox.Show("Successfully saved", "Record", MessageBoxButtons.OK, MessageBoxIcon.Information);
                st1 = lblUser.Text;
                st2 = " ClassFee Payment Is Done admissionNo='" + txtAdmissionNo.Text + "' having PaymentID ='" + FeePaymentID.Text + "'";
                btnSave.Enabled = false;
                btnPrint.Enabled = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

解決策 1

試す:

C#
cmd.Parameters.AddWithValue("@PaymentDate", dtpPaymentDate.Value);

そして、パラメータ名を SQL で指定した名前に結び付けます。
これらは一致しません:

SQL
VALUES (@d1,@d2,@d3,@d4,@d5,@d6,@d7,@d8,@d9,@d10,@d11,@d12,@d13,d14)

彼らはする必要があります

C#
VALUES (@FeePayementID, @AdmissionNo, @StudentName, @Class, ...

パラメータを一致させるには:

C#
cmd.Parameters.AddWithValue("@FeePayementID", FeePaymentID.Text);
cmd.Parameters.AddWithValue("@AdmissionNo", txtAdmissionNo.Text);
cmd.Parameters.AddWithValue("@StudentName", txtStudentName.Text);
cmd.Parameters.AddWithValue("@Class", txtclass.Text);
...

解決策 4

string sql = “Insert into customers Values (@ID,@Cust_type,Cust_code@First_name,@Last_name,@Home_num,@Mobil_num@Adreaa,@Email,@Starting_balanc,@Trading_date,@DOB,@Currency_type,@Loyalty,@Note )”;
SqlCommand cmd = new SqlCommand(sql,con);
cmd.Connection = コン;

cmd.Parameters.AddWithValue(“@ID”,txtclientid.Text);
cmd.Parameters.AddWithValue(“@Cust_Type”, cbxindbus.SelectedValue);
cmd.Parameters.AddWithValue(“@Cust_Code”, txtcode.Text);
cmd.Parameters.AddWithValue(“@First_name”, txtfrstnam.Text);
cmd.Parameters.AddWithValue(“@Last_name”, txtlastnam.Text);
cmd.Parameters.AddWithValue(“@Home_num”, txthomenum.Text);
cmd.Parameters.AddWithValue(“@Mobil_num”, txtmobnum.Text);
cmd.Parameters.AddWithValue(“@アドレス”, txtaddress.Text);
cmd.Parameters.AddWithValue(“@Email”, txtemail);
cmd.Parameters.AddWithValue(“@Starting_balance”, txtstrbalnc.Text);
cmd.Parameters.AddWithValue(“@Trading_date”, dtpstartrd.Value.ToString(“yyyy/MM/dd “));
cmd.Parameters.AddWithValue(“@DOB”, dtpdob.Value.ToString(“yyyy/MM/dd”));
cmd.Parameters.AddWithValue(“@Currency_type”, cbxcurtype.SelectedValue);
cmd.Parameters.AddWithValue(“@Loyalty”, cbxloyalty.SelectedValue);
cmd.Parameters.AddWithValue(“@Note”, txtnote.Text);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show(“情報が保存されました”);

コメント

タイトルとURLをコピーしました