Ich habe folgenden Code, um Informationen aus dem Bearbeitungssteuerelement zu erhalten und in die Datenbank schreiben.MFC und SQL Server-Datenbank
Es gibt ein Problem mit Verbindungszeichenfolge und Treiber. Ich habe versucht, Werkzeuge> Verbindungsdatenbank zu verwenden, aber es hat nicht funktioniert, und auch gibt es ein interessantes Problem, das ich aus der Datenbank lesen kann, aber ich kann nicht schreiben.
Gibt es irgendwelche Vorschläge für String-Verbindung, oder mache ich es falsch?
CString Name, Surname;
m_name.GetWindowTextW(Name);
m_surname.GetWindowTextW(Surname);
CStringA temp1(Name);
CStringA temp2(Surname);
const char* pstrName = ((const char *)temp1);
const char* pstrSurname = ((const char*)temp2);
CDatabase database;
CString SqlString;
CString sDriver = _T("SQL Server");
CString sDsn, sMc;
CString sFile = _T("C:\\Users\\Emaaad\\Name.mdf");
sDsn.Format(_T("DRIVER=SQL Native Client;SERVER=.\SQLExpress;Trusted_Connection=Yes;Initial Catalog=ADOTest"), sDriver, sMc, sFile);
try
{
database.Open(NULL, false, false, sDsn);
CRecordset recset(&database);
SqlString = _T("insert into Categories(CatID, Category) values(");
SqlString.Append(Name);
SqlString.Append(_T(","));
SqlString.Append(Surname);
SqlString.Append(_T(")"));
CStringA temp3(SqlString);
const char* pstrSql = ((const char *)temp3);
database.ExecuteSQL(SqlString);
database.Close();
}
catch (CDBException* e)
{
AfxMessageBox(e->m_strError);
}
* "Es hat nicht funktioniert" * ist keine Fehlerbeschreibung. Wie scheitert es und welche? Dein Code hat so viele auskommentierte Zeilen, dass es ziemlich unmöglich ist zu sehen, was du versuchst. Unabhängig von Ihrem Problem (was auch immer das ist), führen Sie ein Ausnahmeobjekt aus. Wenn Sie nicht 'e' zurückwerfen, müssen Sie' e-> Delete(); 'darauf aufrufen (siehe [Exception Handling in MFC] (https://msdn.microsoft.com/de-de/library/ t078xe4f.aspx)). – IInspectable
ja vielleicht aber das Hauptproblem ist die Verbindung. –