2011-11-13 5 views
0

삽입 한 데이터를 데이터베이스에 저장하는 데 문제가 있습니다. 내가 Visual Studio 내에서 만든 mdf 파일을 사용할 때 작동하지 않습니다. SQL Server 2008에서 만든 dbo 파일을 사용하면 삽입 된 데이터를 데이터베이스에 저장하려고 할 때 잘 작동했습니다.데이터베이스에 데이터를 저장할 수 없습니다.

저장 프로 시저를 사용하고 있습니다. 오류가 발생하지 않았습니다. 도와주세요 pls.

SqlConnection myConn = new SqlConnection(@"Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\FifthColumn.mdf; Integrated Security=True; User Instance=True"); 
SqlDataAdapter myDA = new SqlDataAdapter(); 
myConn.Open(); 
myDA.InsertCommand = myConn.CreateCommand(); 
myDA.InsertCommand.CommandText = "InsertIncident"; 
myDA.InsertCommand.CommandType = CommandType.StoredProcedure; 
myDA.InsertCommand.Parameters.Add("@Country", SqlDbType.NChar, 2, "Country").Value = inputCountry; 
myDA.InsertCommand.Parameters.Add("@IncidentTypeID", SqlDbType.NChar, 2, "Country").Value = inputIncidentTypedID; 
myDA.InsertCommand.Parameters.Add("@AgentID", SqlDbType.NChar, 2, "Country").Value = inputAgentID; 
myConn.Close(); 
+2

"작동하지 않을 것"이라고 말하는 것은 다소 모호합니다. 코드를 사용하려고하면 정확히 무엇이 발생합니까? 예외가 있습니까? 삽입하는 데이터에 버그가 있습니까? – Polynomial

+0

** ** AttachDbFilename = '메서드를 사용하는 것이 슬픔의 원인이되는 문제입니다. 프로젝트 디렉토리에 MDF 사본 **을 만들고 해당 사본에 대해 INSERT를 실행 한 다음 다른 파일을 보게됩니다 (물론 INSERT가없는 이유는 INSERT가 실행되지 않았기 때문입니다 MDF 파일!) –

답변

0

데이터 어댑터는 자동으로 열리 며 연결을 종료 :

SqlConnection myConn = new SqlConnection(@"Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\FifthColumn.mdf; Integrated Security=True; User Instance=True"); 
myConn.Open(); 
SqlCommand mycommand = myConn.CreateCommand(); 
mycommand.CommandText = "InsertIncident"; 
mycommand.CommandType = CommandType.StoredProcedure; 
mycommand.Parameters.Add("@Country", SqlDbType.NChar, 2, "Country").Value = inputCountry; 
mycommand.Parameters.Add("@IncidentTypeID", SqlDbType.NChar, 2, "Country").Value = inputIncidentTypedID; 
mycommand.Parameters.Add("@AgentID", SqlDbType.NChar, 2, "Country").Value = inputAgentID; 
mycommand.Parameters.Add("@incidentDate", SqlDbType.SmallDateTime).Value = inputID; 
mycommand.ExecuteNonQuery(); 
myConn.Close(); 

여기서 코드 사용 데이터 어댑터이다

여기서 사용하는 SqlCommand 코드이다. 데이터 어댑터를 사용하는 경우 연결을 열거 나 닫을 필요가 없습니다.

둘째, 데이터 어댑터는 주로 데이터 어댑터의 채우기 메소드를 사용하여 데이터베이스에서 데이터 블록으로 블록 데이터를 가져 오는 데 사용됩니다.

데이터 어댑터의 insert 명령 또는 update 명령 속성을 사용하여 데이터를 삽입하거나 업데이트 할 수 있습니다. 사용 전에 명령 개체에 할당해야합니다.

+0

예 dataadpater select 명령에서 데이터 세트를 사용하고 있습니다. 내가 왜 내 데이터베이스에 저장할 수없는 문제를 발견, 나는 executequery 메서드를 사용하는 것을 잊어 버렸습니다. 도와 주셔서 감사합니다 – Sephiroth111

관련 문제