dragnor Juniormester
30. september 2020 - 07:28 Der er 2 kommentarer og
1 løsning

System.ArgumentException: 'Parameter is not valid.'

Hej,

Jeg har lavet lidt hygge programering i noget tid Visual Studio og med stor success indtil nu. Jeg er dog løbet ind i et problem jeg ikke lige kan finde ud af hvad jeg skal gøre med :-(

Jeg får følgende fejl:
System.ArgumentException: 'Parameter is not valid.'

Her i koden:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Munin
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
//Fejlbeskeden/cursor stopper i linjen nedenfor           
Application.Run(new Menu());
        }
    }
}

Det forekommer i forbindelse med følgende kode:
private void upd_Q()
        {
            string ConString = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
            string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
            string BNR = userName.Substring(userName.Length - 6, 6);

            using (SqlConnection connection = new SqlConnection(ConString))
            {
                try
                {
                    int curRow = -1;

                    if (dgv_C.CurrentRow.Index != -1)
                    {
                        curRow = dgv_C.CurrentRow.Index;
                    }

                    dgv_Q2.DataSource = null;
                    dgv_Q2.Rows.Clear();
                    string query = @"      SELECT        QA.T_QA_B_CASE_Q.Q_ID, QA.T_QA_B_CASE_T.T_NAME AS Taxonomy, QA.T_QA_B_QUESTIONS.Q_NAME AS Question, QA.T_QA_B_CASE_Q.Q_RESULT AS Result
                                            FROM            QA.T_QA_B_CASE_Q with (nolock) INNER JOIN
                                                                    QA.T_QA_B_QUESTIONS with (nolock) ON QA.T_QA_B_CASE_Q.Q_ID = QA.T_QA_B_QUESTIONS.Q_ID INNER JOIN
                                                                    QA.T_QA_B_CASE_T with (nolock) ON QA.T_QA_B_QUESTIONS.T_ID = QA.T_QA_B_CASE_T.T_ID
                                            WHERE        (QA.T_QA_B_CASE_Q.U_CASE_ID = '"+ dgv_C.Rows[curRow].Cells[0].Value.ToString() + "') AND (QA.T_QA_B_CASE_T.QA_TYPE =" + dgv_C.Rows[curRow].Cells[12].Value.ToString() + ") ORDER BY QA.T_QA_B_CASE_T.T_ORDER, QA.T_QA_B_QUESTIONS.Q_ORDER";
                    SqlDataAdapter da = new SqlDataAdapter(query, connection);
                    connection.Open();
                    DataSet ds = new DataSet();
                    da.Fill(ds, "Q");
                    dgv_Q2.AutoGenerateColumns = true;
                    dgv_Q2.DataSource = ds; // dataset
                    dgv_Q2.DataMember = "Q"; // table name you need to show
                    connection.Close();
                    dgv_Q2.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
                    dgv_Q2.Columns[0].Visible = false;
                }
                catch (Exception ex)
                {
                    DateTime myDateTime = DateTime.Now;
                    string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
                    userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                    SqlConnection EL = new SqlConnection(ConString);
                    string SqlCmdText = @"  INSERT INTO [DATA].[QA].[T_QA_B_ERR_LOG]([ROW_TS],[BNR],[FORM],[MSG])
                                                VALUES(@ROW_TS,@BNR,@FORM,@MSG)";
                    SqlCommand sc = new SqlCommand(SqlCmdText, EL);
                    EL.Open();
                    sc.Parameters.Clear();
                    sc.Parameters.AddWithValue("@ROW_TS", sqlFormattedDate);
                    sc.Parameters.AddWithValue("@BNR", userName);
                    sc.Parameters.AddWithValue("@FORM", "Checker");
                    sc.Parameters.AddWithValue("@MSG", "upd_Q: " + ex.Message.ToString());
                    sc.ExecuteNonQuery();

                    EL.Close();
                }
            }
        }

Det der gør det ekstra underligt er at den ikke gør det ved først kørsel af private void upd_Q() men først anden gang den køre koden.

Kan nogen hjælpe mig til at forstå hvad jeg gør galt så jeg kan blive klogere på mine fejl?

På forhånd 1000 tak for jeres tid!
Rune1983 Guru
30. september 2020 - 07:34 #1
Mener du i Visual Studio kan køre dit program i debug mode ... så den viser linien hvor fejlen opstår. Måske det vil giv lidt mere viden omkring hvor du skal fokusere henne.
dragnor Juniormester
30. september 2020 - 07:50 #2
Ja det kan godt køre i debug mode. Alt virker fint, indtil jeg køre den del kode nævnt overfor 2 gange. Jeg har andre forms hvor et datagridview opdatere et andet datagridview, uden den fejl. Men i dette tilfælde fejler den anden gang den køres og det giver absolut ingen mening :-(

Problemet med fejlbeskeden er at den ikke peger på den form hvor koden udføres men stopper i selve projektet.
dragnor Juniormester
30. september 2020 - 08:18 #3
Jeg fandt fejlen.

Jeg har et LinkLabel og det fejler hvis man tilføjer mere end en gang hvis man glemmer at bruge Clear(); inden man tilføjer et nyt link.

Underligt at den ikke bare peger på den del af koden.

Den fejler fordi den ikke kan repræsentere 2 links på en gang tror jeg.
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
37 min siden Forskellige brugere/ Login Af desist i PC
52 min siden Jubii Af Farmor i E-mail programmer
I dag 07:16 Plads på en PS3 Af Maja i Andet hardware
I går 22:08 Min Macbook vil ikke starte Af Hanne H i Mac
I går 20:57 Geninstaller Windows 10 Af barth i PC


Premium
Test: Kæmpestort gaming-headset er perfekt til dine lange Teams-møder - men har også nogle besværligheder
Længe før vi andre blev slået hjem til hjemmekontorets endeløse webmøder har gamerne gennemskuet behovet for komfortabelt grej. Så vi tog danske EPOS top gamingheadset med på arbejde. Læs testen her.
Computerworld
Biden sender skjult besked til kode-folket: "Hvis du læser dette, har vi brug for din hjælp”
En stående invitation er blevet opdaget i kildekoden på Det Hvide Hus' hjemmeside. Men den er kun til de eksperter, der selv kan finde den.
CIO
Podcast: Hos Viking Life-Saving Equipment er it gået fra at være backend til at være noget, som kunderne spørger aktivt efter
Podcast, The Digital Edge: Viking leverer en stadig større del af deres produkt som en tjeneste. Som en del af tjenesten tager Viking ansvar for sikkerheden ved at levere, dokumentere og vedligeholde det nødvendige sikkerhedsudstyr. Hør hvordan Henrik Balslev senior digital director hos Viking har løftet den opgave.
White paper
Digital transformation tvinger organisationer til at nå deres digitale mål på nye måder
Allerede for to år siden hævdede nordiske virksomheder, at virksomhedernes konkurrenceevne og sågar overlevelse var afhængig af en vellykket digitalisering. De var klar, fulde af håb og på vej mod det digitale paradis. Hvordan gik det så? Hvor er de nu? For at finde ud af det, interviewede DigiPlex og Norstat 377 forretningsledere og IT-beslutningstagere fra organisationer fordelt over hele Danmark, Sverige og Norge om deres digitaliseringsfremskridt, om hvordan de har håndteret pandemien, og om hvordan IT understøtter eller står i vejen for indfrielsen af deres bæredygtighedsmål. DigiPlex kan nu dele en rapport med resultaterne fra undersøgelsen samt tanker om, hvordan man håndterer dem. De deler også nogle nyttige tips til, hvordan man skaber en pålidelig infrastruktur, der kan tilskynde til og understøtte ambitioner i den digitale økonomi. Læs mere i rapporten Nordic Data Center Trends 2020: Riding out the Storm.