у меня есть это окно код формыПроверьте проигрыватель существует ошибку
private void StartGame_Click(object sender, EventArgs e)
{
if (player.Text == "")
{
MessageBox.Show("Enter A player to proceed.");
}
else
{
//SQL Connection String
using (SqlConnection conn = new SqlConnection("Data Source=Keith;Initial Catalog=SoftEngg;Integrated Security=True"))
{
conn.Open();
bool exists = false;
// create a command to check if the username exists
using (SqlCommand cmd = new SqlCommand("select * from PlayerData where PlayerName = @player", conn))
{
cmd.Parameters.AddWithValue("player", player.Text);
exists = (int)cmd.ExecuteScalar() > 0;
}
// if exists, show a message error
if (exists)
MessageBox.Show(player.Text, "is used by another user.");
else
{
// does not exists, so, persist the user
using (SqlCommand cmd = new SqlCommand("INSERT INTO PlayerData(PlayerName) values (@Playername)", conn))
{
cmd.Parameters.AddWithValue("Playername", player.Text);
cmd.ExecuteNonQuery();
}
}
conn.Close();
}
}
}
моя цель состоит, чтобы предупредить игрок и отобразить MessageBox «игрок уже существует» в системе. Но мой код, похоже, не работает. Когда я запускаю программу, я получаю сообщение об ошибке на этот код здесь:
exists = (int)cmd.ExecuteScalar() > 0;
и ошибка говорит: (Дополнительная информация: Ссылка на объект не указывает на экземпляр объекта.)
Как это исправить , пожалуйста помоги.
'cmd.Parameters.AddWithValue ("@ игрок", player.Text);' Кроме того, если запрос ничего не возвращает, он не может превратить это в 'int', поэтому вам нужно это проверить. – LarsTech
спасибо за напоминание, но я все еще получаю сообщение об ошибке в том, что существует код = (int) cmd.ExecuteScalar()> 0; –