02. april 2005 - 23:16
Der er
20 kommentarer og 1 løsning
convert problem
Hejsa E Jeg får fejlen: System.FormatException: Input string was not in a correct format. at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.String.System.IConvertible.ToInt32(IFormatProvider provider) at System.Convert.ToInt32(Object value) Jeg prøver at hente noget fra en DB hvor der skal et ID med i SQL'en, men jeg kan vist ikke caste den ordentligt.... string webID = GetWebID().ToString(); string SQLStr = "SELECT * FROM admin WHERE webID = " + webID; Hvad skal jeg gøre i stedet ???
Annonceindlæg fra Barco
Er jeres mødelokaler sikre nok?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
02. april 2005 - 23:18
#1
Jeg tror ikke at du får fejlen i de 2 linier kode (medmindre GetWebID gør noget)
02. april 2005 - 23:19
#2
Det er en string -> int konvertering som driller
02. april 2005 - 23:41
#3
nej der int til string
02. april 2005 - 23:41
#4
der = det er
02. april 2005 - 23:43
#5
string webID = GetWebID().ToString(); MySqlConnection MySConn = new MySqlConnection(sConnStr.ToString()); string SQLStr = "SELECT * FROM admin WHERE webID = " + webID; MySqlCommand cmd = new MySqlCommand(SQLStr, MySConn); MySConn.Open(); MySqlDataReader reader = cmd.ExecuteReader(); reader.Read();
02. april 2005 - 23:46
#6
fejlen siger ToInt32
02. april 2005 - 23:46
#7
GetWebID() afleverer et int SQLstr ser rigtig ud hvis jeg skriver den ud, men fejlen kommer alligevel!
02. april 2005 - 23:47
#8
Må vi se GetWebID ?
02. april 2005 - 23:50
#9
man kan vel heller ikke bare sige "string = int" skal det ikke være string = (string)int -> eller -> string = System.Convert.ToString(int)
02. april 2005 - 23:50
#10
private int GetWebID() { int webID = 0; try { string domain = Regex.Replace(HttpContext.Current.Request.ServerVariables["SERVER_NAME"], "www.", ""); string [] domainSplit = Regex.Split(domain, "."); int xCount = domainSplit.Length; string SQLStr = ""; if (xCount < 2 || domain.IndexOf(".yyy.dk") >= 0) { SQLStr = "SELECT webID FROM domains WHERE domain = '" + domain + "'"; } else { string dbDomName = Regex.Replace(domain, ".yyy.dk", ""); dbDomName = Regex.Replace(dbDomName, ".", ""); dbDomName = Regex.Replace(dbDomName, "-", ""); dbDomName = Regex.Replace(dbDomName, "æ", "a"); dbDomName = Regex.Replace(dbDomName, "ø", "o"); dbDomName = Regex.Replace(dbDomName, "å", "a"); // dbDomName = dbDomName.Substring(0,64); SQLStr = "SELECT webID FROM admin WHERE dbName = '" + dbDomName + "'"; } //testSql fra arbejdsstation if (domain.IndexOf("localhost") >= 0) SQLStr = "SELECT webID FROM domains WHERE domain = 'xxx.dk'"; MySqlConnection MyConn = new MySqlConnection(sConnStr); MySqlCommand cmd = new MySqlCommand(SQLStr, MyConn); MyConn.Open(); webID = (int)cmd.ExecuteScalar(); MyConn.Close(); } catch(Exception e) { string getWebIDErr = e.ToString(); } return webID; }
02. april 2005 - 23:51
#11
Jeg tror at det er den her: webID = (int)cmd.ExecuteScalar();
02. april 2005 - 23:54
#12
object o = cmd.ExecuteScalar(); if(o != null) webID = (int)o; måske
02. april 2005 - 23:57
#13
jokkejensen> jeg får samme fejl med nedenstående string webID = Convert.ToString(GetWebID()); MySqlConnection MySConn = new MySqlConnection(sConnStr.ToString()); string SQLStr = "SELECT * FROM admin WHERE webID = " + webID.ToString();
03. april 2005 - 00:04
#14
arne> Cannot implicitly convert type 'object' to 'int'
03. april 2005 - 00:07
#15
jeg havde sat webID til object, men ændrede det igen, så kommer ovenstående fejl ikke, men den oprindelige fejl kommer igen!
03. april 2005 - 00:15
#16
Prøv: object o = cmd.ExecuteScalar(); // udskriv o her på en eller anden måde if(o != null) webID = (int)o;
03. april 2005 - 00:22
#17
o = 1025 (hvilket er som det skal være)
03. april 2005 - 00:25
#18
men en ExecuteScalar leverer altid et object så det det kan vel lige så godt gøres som jeg gjorde fra start!
03. april 2005 - 00:29
#19
hvis jeg sætter en try catch om string webID = GetWebID().ToString(); kommer fejlen ikke der, så det må være længere nede
03. april 2005 - 00:46
#20
Jeg undskylder mange gange, fejlen lå i at jeg hentede en værdi ud, som jeg troede var en int, men som er en string.... pinligt, så jeg må hellere gå i seng! Får jeg et svar for ulejligheden
03. april 2005 - 11:24
#21
ok
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.