Får felmeddelandet "Specified cast is not valid" när jag hämtar data från databasen. Din kod försöker hämta två strängar i kolumn 0 och 1, så troligen beror felet på att de två första kolumnerna (categories.categories_id och categories.parent_id) är integer. Använd i sådana fall metoden GetInt32() i stället. Det hjälpte inte det heller. La in den if-satsen som ett vilkor i sql-strängen istället och då får jag samma felmeddelande på rad 40 som är denna: Ok. Fixat! Problemet låg i att jag inte satte GetInt32() i strängen på rad 40 - 42.Specified cast is not valid
Här är den del som felmeddelandet kommer ifrån.
<script runat="server">
protected void categoriesLabel_Load(object sender, EventArgs e)
{
const string DB_ADDRESS = "C:\\Inetpub\\wwwroot\\";
OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + DB_ADDRESS + "data\\osAuction.mdb");
string strSelect;
bool parentSet = false;
if (Request.QueryString["parent"] != null)
{
strSelect = "SELECT categories.categories_id, categories.parent_id, categories_description.categories_id, categories_description.categories_name FROM (categories INNER JOIN categories_description ON categories.categories_id = categories_description.categories_id)";
parentSet = true;
}
else
{
strSelect = "SELECT categories.categories_id, categories.parent_id, categories_description.categories_id, categories_description.categories_name FROM (categories INNER JOIN categories_description ON categories.categories_id = categories_description.categories_id)";
}
OleDbCommand objCmd = new OleDbCommand(strSelect, objConn);
OleDbDataReader objReader;
objConn.Open();
objReader = objCmd.ExecuteReader();
while (objReader.Read())
{
if (!parentSet)
{
if (objReader.GetString(0) == objReader.GetString(1))
{
categoriesLabel.Text += " objReader.GetString(0) + "&cat=" + objReader.GetString(0) + "\">" +
objReader.GetString(2) + "";
}
}
else
{
if (objReader.GetString(0) != Request.QueryString["parent"])
{
categoriesLabel.Text += " Request.QueryString["parent"] + "&cat=" + objReader.GetString(0) + "\">" +
objReader.GetString(3) + "";
}
}
}
}
</script>
Den gnäller på rad 40 som är:
if (objReader.GetString(0) == objReader.GetString(1))
Är det någon som vet vad det kan vara för fel?Sv: Specified cast is not valid
Sv:Specified cast is not valid
categoriesLabel.Text += "<a href=\"" + Request.ServerVariables["SCRIPT_NAME"] + "?parent=" +Sv: Specified cast is not valid