Я вставляю строку данных в свою базу данных SQL Server, а затем я хочу запросить данные, чтобы получить уникальный идентификатор из вставленной строки, но мой возвращает пустой набор данных. Я думаю, что, возможно, сделка не была совершена или что-то в этом роде, но я не уверен. Я не получаю сообщение об ошибке.Как выполнить SqlDataReader после sqlInsertCmd.ExecuteNonQuery
Вот мой код:
try
{
strQuery = "INSERT INTO clientnames VALUES(NEWID(),'" + txtACLastName.Text + "','" + txtACFirstName.Text + "'," + 1 + ")";
using (SqlCommand sqlInsertCmd = new SqlCommand(strQuery, sqlConn))
{
intQueryResult = sqlInsertCmd.ExecuteNonQuery();
if (intQueryResult == 0)
{
blnSuccess = false;
goto InsertClientNamesError;
}
else
{
blnSuccess = true;
}
sqlInsertCmd.Dispose();
}
if (blnSuccess)
{
strQuery = "select clientID from clientnames where firstname = '" + txtACFirstName.Text + "' and lastname = '" + txtACLastName.Text + "'";
using (SqlCommand sqlSelectCmd = new SqlCommand(strQuery, sqlConn))
{
SqlDataReader sqlDataRead = sqlSelectCmd.ExecuteReader();
while (sqlDataRead.Read())
{
strClientID = sqlDataRead.ToString();
}
sqlDataRead.Close();
sqlSelectCmd.Dispose();
}
}
}
catch (Exception exQuery)
{
System.Windows.MessageBox.Show("InsertClientNames: Error, " + exQuery.Message + ", has occurred.");
}
[SQL Injection предупреждение] (http://msdn.microsoft.com/en-us/library/ms161953 % 28v = SQL. 105% 29.aspx) - вы должны ** не ** объединить свои SQL-запросы - используйте ** параметризованные запросы **, чтобы избежать SQL-инъекции –