나는이 코드를 검색하여 데이터를 데이터베이스에 저장하고 연결 문자열을 확인하고 예외/오류를 throw하지는 않지만이 코드가 내 데이터베이스에 데이터를 저장하지 않는 이유를 모른다. ..데이터를 데이터베이스에 저장하는 방법
string query = "Insert Into BookConfiguration (BookNum, x_axis, y_axis, BookName) Values (@BookNum, @x_axis, @y_axis, @BookName)";
string connStr = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\BookShelf.mdf;Integrated Security=True;User Instance=True";
try
{
using (SqlConnection conn = new SqlConnection(connStr))
{
SqlDataAdapter da = new SqlDataAdapter();
da.InsertCommand = new SqlCommand(query, conn);
da.InsertCommand.Parameters.Add("@BookNum", SqlDbType.Int).Value = quantity;
da.InsertCommand.Parameters.Add("@x_axis", SqlDbType.Int).Value = x;
da.InsertCommand.Parameters.Add("@y_axis", SqlDbType.Int).Value = y;
da.InsertCommand.Parameters.Add("@BookName", SqlDbType.Text).Value = openFileDialog1.FileName;
conn.Open();
da.InsertCommand.ExecuteNonQuery();
conn.Close();
}
}
catch (SqlException ex)
{
MessageBox.Show("Error Occured " + ex.Message);
}
EDIT 지금 코드 같은 문제가 변경된
번호 :
try
{
using (TransactionScope scope = new TransactionScope())
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.Parameters.Add(new SqlParameter("@BookNum", quantity));
cmd.Parameters.Add(new SqlParameter("@x_axis", x));
cmd.Parameters.Add(new SqlParameter("@y_axis", y));
cmd.Parameters.Add(new SqlParameter("@BookName", openFileDialog1.FileName));
cmd.ExecuteNonQuery();
}
conn.Close();
}
scope.Complete();
}
}
IH OPE는 ...
는 C#을 비주얼 스튜디오 2010 SQL Server 2008의 코딩 ... 막연한 명확하지 않다
오류가없는 경우 내 첫 번째 추측은있을 수 있습니다. 암시 적 트랜잭션이고 커밋하지 않습니다. 또한, SqlDataAdapter는 무엇입니까? 불필요한 것 같습니다 - 당신은 SqlCommand를 만들고 그것을 직접 사용할 수 있어야합니다. –
나는 처음 sqlcommand를 사용하여 동일한 prob를 시도한 다음 sqlDataAdapter를 시도했다. 심지어 트랜잭션을 시도했으나 행운이 없다. –
데이터가 데이터베이스에 추가되지 않는다는 것을 어떻게 알 수 있습니까? 데이터베이스 탐색기 도구를 사용하여'BookShelf.mdf'의 내용을 보거나 응용 프로그램의 다른 곳에서 SELECT 명령을 실행하고 있습니까? – mellamokb