20. august 2006 - 21:10Der er
12 kommentarer og 1 løsning
Datalag - Businesslag - fejl ?
Hejsa,
Jeg har i mit datalag lavet en metde der retunere bool true/false. I mit business har jeg så en medtode der skal retunere en string med en fejl besked afhænnigt af om jeg får tru el. false fra mit datalag.
Men når jeg forsøger at kalde det fra en af mine sider får jeg denne fejl :
Cannot implicitly convert type 'bool' to 'string'
Skal det sige at jeg ikke igennem mine lag kan have bool/string i to uafhænnige metoder ?
DAL private DatabaseHelper _Db = new DatabaseHelper(); public bool RoleExists(string roleName) { string Sql = "Select * From tbl_Roles Where RoleName = '" + roleName + "'"; DbDataReader Dr = _Db.ExecuteNonQuery(Sql); bool Result = false; if (Dr.HasRows) { Result = true; } Dr.Close(); return Result; }
BLL public string CreateRole(string roleName) { bool Result = objDAL.RoleExists(roleName); if (Result) { return (string)HttpContext.GetGlobalResourceObject("Roles", "ErrorRoleAdd"); } else { return ""; } }
PL string Result = ""; Result = objBLL.CreateRole(txt_AddRole.Text); if (Result != "") { ErrorRoleAdd.Text = Result; }
Når jeg compiler er det så objBLL.CreateRole(txt_AddRole.Text); der kommer med fejlen og jeg kan ikke lige se hvor det skulle kikse ? Det sagtens være mig der misser noget nu hvor jeg er ved at lære det her C# ;o)
Jeg kan kun se een sjov ting. Du kalder _Db.ExecuteNonQuery(Sql) men det er en query/select, og du får faktisk en datareader tilbage, øjensynligt. Måske din DatabaseHelper gør det på den måde, men er det ikke lidt underligt, og lidt programmeringsfjendsk at bruge et velkendt metode-navn på en uortodoks måde?
Jamen, det kan osse være jeg tisser op af det forkert træ. Jeg mener stadig man ikke kan tillade sig at bruge ExecuteNonQuery på en "SELECT.." og få en DataReader tilbage.
Men skal vi udelukke at det ku' være årsagen til dit problem, så ta' lige og build DAL.cs - og kun den, og se om den siger ok.
Lyder godt. Jeg ved ikke om du er ramt ind i at Visual Studio har en checkbox: "Jeg kan ikke lide at se, når jeg har lavet en fejl. Vil du ikke godt fortsætte som om intet var hændt".
Jeg samler ikke på point. Det er jo underholdning i sig selv ;)
Jeg kan jo blot åbne øjnene her sidst på dagen ;o)
Synes godt om
Ny brugerNybegynder
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.