[Q] Object anser sig inte vara instansierad?
Tjenare.
Lite ny till att jobba i PostgreSQL med C#, ganska stor skillnad mot MySQL måste jag erkänna och har kört på ett fel.
I min klass där jag ska kunna använda en metod namngiven UpdateSetScoreCMD som uppdaterar ett värde i en databas, så har jag en variabel: object resource.
Resource ska innehålla en siffra mellan 1-X, x kan alltså vara vad som helst över 1.
Men den påstår när jag använder den tillsammans med en annan metod inte fungera. Men i andra fall funkar den.
Instansieras genom:
class SQLqueries
{
private object resource;
Kod från den som kallas då det kraschar:
private int GetCompetitionIdCMD(string date)
{
conn = new NpgsqlConnection(connString);
NpgsqlCommand cmd = new NpgsqlCommand("SELECT competition_id FROM competition WHERE startdate = :value", conn);
cmd.Parameters.Add(":value", NpgsqlDbType.Varchar);
cmd.Parameters[0].Value = date;
try
{
conn.Open();
resource = cmd.ExecuteScalar();
return int.Parse(resource.ToString()); <!-- här kraschar den (object not instansiated)-->
}
finally
{
conn.Close();
}
}
Error bild:
Kod som hämtas separat utan att krascha:
public bool UpdateSetNewScoreCMD(int value, string competition_date, int golf_id)
{
int tempId = GetCompetitionIdCMD(competition_date); <!-- Här den kraschar på grund av den ovanför-->
conn = new NpgsqlConnection(connString);
conn.Open();
NpgsqlCommand cmd = new NpgsqlCommand("UPDATE member_competition SET score = :value WHERE competition_id = :comp_id AND golf_id = :golf_id", conn);
cmd.Parameters.Add(":value", NpgsqlDbType.Integer);
cmd.Parameters.Add(":comp_id", NpgsqlDbType.Integer);
cmd.Parameters.Add(":golf_id", NpgsqlDbType.Integer);
cmd.Parameters[0].Value = value;
cmd.Parameters[1].Value = tempId;
cmd.Parameters[2].Value = golf_id;
if (conn.State == ConnectionState.Open)
{
try
{
int counts = cmd.ExecuteNonQuery();
if (counts > 0)
{
return true;
}
else
{
return false;
}
}
finally
{
conn.Close();
}
}
else
{
return false;
}
}
Har även testat att definiera resource som "resource = null; = 0; = " "" eller liknande innan användning men gör ingen skillnad.
Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40