Avatar billede trumf Nybegynder
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 ???
Avatar billede arne_v Ekspert
02. april 2005 - 23:18 #1
Jeg tror ikke at du får fejlen i de 2 linier kode (medmindre GetWebID gør noget)
Avatar billede arne_v Ekspert
02. april 2005 - 23:19 #2
Det er en string -> int konvertering som driller
Avatar billede trumf Nybegynder
02. april 2005 - 23:41 #3
nej der int til string
Avatar billede trumf Nybegynder
02. april 2005 - 23:41 #4
der = det er
Avatar billede trumf Nybegynder
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();
Avatar billede arne_v Ekspert
02. april 2005 - 23:46 #6
fejlen siger ToInt32
Avatar billede trumf Nybegynder
02. april 2005 - 23:46 #7
GetWebID() afleverer et int
SQLstr ser rigtig ud hvis jeg skriver den ud, men fejlen kommer alligevel!
Avatar billede arne_v Ekspert
02. april 2005 - 23:47 #8
Må vi se GetWebID ?
Avatar billede jokkejensen Novice
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)
Avatar billede trumf Nybegynder
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;
        }
Avatar billede arne_v Ekspert
02. april 2005 - 23:51 #11
Jeg tror at det er den her:

webID = (int)cmd.ExecuteScalar();
Avatar billede arne_v Ekspert
02. april 2005 - 23:54 #12
object o = cmd.ExecuteScalar();
if(o != null) webID = (int)o;

måske
Avatar billede trumf Nybegynder
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();
Avatar billede trumf Nybegynder
03. april 2005 - 00:04 #14
arne>
Cannot implicitly convert type 'object' to 'int'
Avatar billede trumf Nybegynder
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!
Avatar billede arne_v Ekspert
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;
Avatar billede trumf Nybegynder
03. april 2005 - 00:22 #17
o = 1025 (hvilket er som det skal være)
Avatar billede trumf Nybegynder
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!
Avatar billede trumf Nybegynder
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
Avatar billede trumf Nybegynder
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
Avatar billede arne_v Ekspert
03. april 2005 - 11:24 #21
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester