Diskuze: SqlDbType problém float
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj,
je nějaký důvod, proč používáš float ? Můžeš sem přidat definici
tabulky v databázi ? Podle hlášky by to mohlo být i tam ... Bohužel bez SQL
dotazu, který předáváš v SqlCommandu ti nikdo víc nepomůže ...
Ještě malá rada, tvoje třída se nachází se dá zjednodušit aby byla
více čitelná:
public class Se_nachazi
{
public int PredmetId { get;set;}
public float LokaceX { get;set;}
public float LokaceY { get;set;}
....
}
nemusí tam být private deklarace ...
CREATE
TABLE Se_Nachazi
(
Se_nachazi_Id INTEGER NOT NULL identity(1,1) ,
ServerId INTEGER NOT NULL ,
PredmetId INTEGER NOT NULL ,
LokaceX FLOAT NOT NULL ,
LokaceY FLOAT NOT NULL ,
LokaceZ FLOAT NOT NULL
)
ON "default"
GO
ALTER TABLE Se_Nachazi ADD CONSTRAINT Se_Nachazi_PK PRIMARY KEY CLUSTERED (
Se_nachazi_Id)
WITH
(
ALLOW_PAGE_LOCKS = ON ,
ALLOW_ROW_LOCKS = ON
)
ON "default"
GO
No float používám protože u tohoto atributu potřebuji desetinné číslo
ale zkoušel jsem to přepsat vše na decimal a problem je stejný
v sql commandu předávám jen obyčejný insert
public static String SQL_INSERT = "INSERT INTO Se_nachazi(ServerId,PredmetId,LokaceX,LokaceY,LokaceZ) VALUES(@serverId,@predmetId,@lokaceX,@lokaceY,@lokaceZ)";
Taky tam nic nevidím, nebo mi to uniká. Nicméně doporučuju pustit v
debugu, zastavit těsně před spuštěním SQL dotazu a kouknout co je v
commandu. Ještě jsem si všiml dalších zbytečností:
Toto zapiš
command.Parameters.Add(new SqlParameter("@predmetId", System.Data.SqlDbType.Int, sn.PredmetId));
command.Parameters["@predmetId"].Value = sn.PredmetId;
Takhle:
command.Parameters.Add(new SqlParameter("@predmetId", sn.PredmetId));
Samo to pozná, co je to za datový typ a bude se to číst lépe. V druhém řádku jsi už jen znovu vnucoval hodnotu.
Jo děkuji za pomoc ale nakonec jsem to vyřešil chyba byla opravdu v typu
viz
https://msdn.microsoft.com/…vs.110).aspx
Zobrazeno 5 zpráv z 5.