복붙노트

[SQL] 매개 변수를 사용하여 ASP.NET ODBC 쿼리

SQL

매개 변수를 사용하여 ASP.NET ODBC 쿼리

나, 나는 다음 코드로 잘못 될 수 있는지 모르겠어요 도와주세요 :

        OdbcConnection conn = new OdbcConnection(connString);
        String query = "INSERT INTO customer (custId, custName, custPass, "+
                       "custEmail, custAddress, custAge) VALUES (" +
                       "@ID, @Name, @Pass, @Email, @Address, @Age)";

        OdbcCommand exe = new OdbcCommand(query, conn);
        exe.Parameters.Add("@ID", OdbcType.UniqueIdentifier).Value = id;
        exe.Parameters.Add("@Name", OdbcType.VarChar).Value = name;
        exe.Parameters.Add("@Pass", OdbcType.VarChar).Value = pass;
        exe.Parameters.Add("@Email", OdbcType.VarChar).Value = email;
        exe.Parameters.Add("@Address", OdbcType.VarChar).Value = address;
        exe.Parameters.Add("@Age", OdbcType.Int).Value = age;
        conn.Open();
        exe.ExecuteNonQuery(); // ERROR [07002] [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 6. 

이 코드는 나에게 너무 몇 가지 매개 변수를 던졌습니다. 내가 쿼리를 실행하려고 할 때 오류가 발생했습니다. 데이터베이스는 내가 대신 매개 변수를 사용하는 쿼리에 값을 하드 코딩 할 때 잘 작동, 괜찮습니다.

감사합니다.

해결법

  1. ==============================

    1.MSDN에서 :

    MSDN에서 :

    SELECT * FROM Customers WHERE CustomerID = ?
    

    에 조회를 다시 작성

    OdbcConnection conn = new OdbcConnection(connString);
        String query = "INSERT INTO customer (custId, custName, custPass, "+
                       "custEmail, custAddress, custAge) VALUES (" +
                       "?, ?, ?, ?, ?, ?)";
    

    매개 변수 카운트의 주문!

    편집 : 매개 변수는이 방법을 추가 할 수 있습니다 :

    OdbcCommand exe = new OdbcCommand(query, conn);
    exe.Parameters.Add("ID", OdbcType.UniqueIdentifier).Value = id;
    exe.Parameters.Add("Name", OdbcType.VarChar).Value = name;
    exe.Parameters.Add("Pass", OdbcType.VarChar).Value = pass;
    exe.Parameters.Add("Email", OdbcType.VarChar).Value = email;
    exe.Parameters.Add("Address", OdbcType.VarChar).Value = address;
    exe.Parameters.Add("Age", OdbcType.Int).Value = age;
    
  2. ==============================

    2.쿼리에 열 중 하나가 존재하지 않습니다. 당신의 열 이름을 확인하시기 바랍니다.

    쿼리에 열 중 하나가 존재하지 않습니다. 당신의 열 이름을 확인하시기 바랍니다.

  3. ==============================

    3.당신은 당신의 SQL 문에 열 이름을 잘못 입력 할 때 일반적으로이를 볼 수 있습니다. 당신은 그 열 이름 (등 custId, CUSTNAME)의 확실합니까?

    당신은 당신의 SQL 문에 열 이름을 잘못 입력 할 때 일반적으로이를 볼 수 있습니다. 당신은 그 열 이름 (등 custId, CUSTNAME)의 확실합니까?

  4. ==============================

    4.어쩌면 ASP 식별자와 혼합 위로를 받고 통과 패스를 변경해보십시오 ...

    어쩌면 ASP 식별자와 혼합 위로를 받고 통과 패스를 변경해보십시오 ...

  5. from https://stackoverflow.com/questions/1535994/asp-net-odbc-query-with-parameters by cc-by-sa and MIT license