2012-08-11 4 views
0

을 포함하고 행 삽입하는 방법 :내가 4 열이있는 테이블이 자동 증가 열

id, user_name, symbol, company. 

id 열이 기본 키이며이 autoIncrement 속성이 있습니다.

try 
{ 
    connection.Open(); 
    SqlCommand cmd = new SqlCommand("INSERT INTO users_stocks VALUES(" + 
            "@user_name, @stock_symbol, @company)", connection); 
    cmd.Parameters.AddWithValue("@user_name", user_name); 
    cmd.Parameters.AddWithValue("@stock_symbol", stock_symbol); 
    cmd.Parameters.AddWithValue("@company", company); 

    int rows = cmd.ExecuteNonQuery(); 
    connection.Close(); 
    //rows number of record got inserted 
} 
catch (SqlException ex) 
{ 
      //Log exception 
      connection.Close(); 
} 

를하지만 나에게 예외를 (내가 4 열이 나는 단지 여기에 3을 지정) 제공 :

나는 테이블에 레코드를 추가하려면, 내가 사용합니다.

어떻게 autoIncrement 열이있는 행을 추가 할 수 있습니까?

+1

예외 메시지 란 무엇입니까? 내부 예외 메시지를 포함하여주십시오. – Oded

+0

제공된 값 또는 열 이름이 테이블 정의 –

답변

4

쿼리에 열 이름을 지정해야합니다.

지정하지 않으면 쿼리가 모든 열에 삽입하려고 시도하므로 실패합니다.

INSERT INTO users_stocks 
(UserName, StockSymbol, Company) 
VALUES 
(@user_name, @stock_symbol, @company) 
+0

과 일치하지 않습니다.이 예외가 발생합니다. 열 'number', 테이블 'C : \ USERS \ MICHAEL \ DESKTOP \ STOCKTRACKER \ APP_DATA \ DATABASE1.MDF에 NULL 값을 삽입 할 수 없습니다. dbo.users_stocks '; 열이 널을 허용하지 않습니다. INSERT가 실패합니다. –

+0

그것은 자동 증분 열 '숫자'인 첫 번째 열에 무엇을 넣어야하는지에 대해 알려주지 않는다는 사실에 문제가 있습니다. –

+0

@MichaelA - 테이블 정의를 다시 한 번 살펴볼 필요가 있습니다. 자동 증가라고 정의되어 있습니까? – Oded

2

SqlCommand를 변경하여 명시 적으로 열을 지정하십시오.

SqlCommand cmd = new SqlCommand("INSERT INTO users_stocks (user_name, symbol, company) VALUES(" + "@user_name, @stock_symbol, @company)", connection);