2015-04-21 2 views
0

У меня есть метод, который должен сохранить данные пользователя в локальной базе данных на Visual Studio, метод ниже в вопросеметод завершается, однако данные не записаны в базу данных SQL

private void btnSaveDetails_Click(object sender, EventArgs e) 
    { 
     //var IssueDate = this.dtpIssueDate.Value.ToString("yyyy-MM-dd HH:mm:ss") + "')"; 
     //var ExipryDate =this.dtpExpiryDate.Value.ToString("yyyy-MM-dd HH:mm:ss") + "')"; 
     var mainMenu = new frmMainMenu(); 
     SqlConnection sc = new SqlConnection(); 
     SqlCommand com = new SqlCommand(); 
     sc.ConnectionString = (Properties.Settings.Default.BioEngineering); 
     sc.Open(); 
     com.Connection = sc; 


     com.Parameters.AddWithValue("@Forename", this.txtFirstName.Text); 
     com.Parameters.AddWithValue("@Surname", this.txtLastName.Text); 
     com.Parameters.AddWithValue("@Company", this.txtCompany.Text); 
     com.Parameters.AddWithValue("@SecurityLevel", this.cboSecurityLevel.Text); 
     com.Parameters.AddWithValue("@IssueDate", this.dtpIssueDate.Value); 
     com.Parameters.AddWithValue("@ExpiryDate", this.dtpExpiryDate.Value); 
     com.Parameters.AddWithValue("@CardID", this.cboCardID.Text); 

     com.CommandText = "INSERT INTO Users (Forename, Surname, Company, SecurityLevel, IssueDate, ExpiryDate, CardID) VALUES (@Forename,@Surname,@Company,@SecurityLevel,@IssueDate,@ExpiryDate,@CardID)"; 
     com.ExecuteNonQuery(); 
     sc.Close(); 
     this.Hide(); 
     mainMenu.Show(); 
    } 

Я не получаю ошибки и когда я добавьте точку останова в com.ExecuteNonQuery, похоже, что у нее есть правильные данные ... любые идеи? Сначала я подумал, что это была строка подключения, но видел другие сайты с похожими форматами, поэтому не думайте, что это

+0

Этот запрос вставки работает в вашем менеджере баз данных? –

+1

Вы пытались запустить SQL Server Profiler, чтобы выяснить, действительно ли запрос выполняется против вашей базы данных? –

+0

Убедитесь, что параметр 'BioEngineering' настроен как строка подключения. Затем вы можете использовать встроенный диалог для настройки строки подключения. Это необходимо, чтобы вы всегда имели правильные строки подключения. –

ответ

0

Попробуйте установить свойство CommandText перед добавлением каких-либо параметров в вашу команду. Просто о том, поставить это:

com.CommandText = "INSERT INTO Users (Forename, Surname, Company, SecurityLevel, IssueDate, ExpiryDate, CardID) VALUES (@Forename,@Surname,@Company,@SecurityLevel,@IssueDate,@ExpiryDate,@CardID)"; 

перед этим:

com.Parameters.AddWithValue("@Forename", this.txtFirstName.Text); 
com.Parameters.AddWithValue("@Surname", this.txtLastName.Text); 
com.Parameters.AddWithValue("@Company", this.txtCompany.Text); 
com.Parameters.AddWithValue("@SecurityLevel", this.cboSecurityLevel.Text); 
com.Parameters.AddWithValue("@IssueDate", this.dtpIssueDate.Value); 
com.Parameters.AddWithValue("@ExpiryDate", this.dtpExpiryDate.Value); 
com.Parameters.AddWithValue("@CardID", this.cboCardID.Text); 

Надеется, что это помогает.

+0

еще не успел к сожалению :( – Matchbox2093

Смежные вопросы