2010-04-16 4 views
0

Bonjour, je vais avoir un problème de mise à jour des types de donnéesImpossible de mettre à jour la date à ASPX à une table MS-ACCESS

insérer la date dans la partie C# comme celui-ci

string strSQL = "INSERT into Frettir (CreatedBy,CreatedOn,Title,Description,Starts,Ends,CatId,SectionId,ArticleExt,Myndatexti,MyndUrAlbumi,NrMyndar) values(?,?,?,?,?,?,?,?,?,?,?,?)"; 

    cmd.Parameters.Add("@Starts",OleDbType.Date).Value = dstartdate; 

mais je mets à jour dans la partie ASPX comme celui-ci

UpdateCommand="UPDATE [Frettir] SET [Title][email protected],[Description][email protected],[CreatedBy][email protected],[ArticleExt][email protected], [Myndatexti][email protected],[Starts][email protected] WHERE [ArticleID][email protected] " 

<UpdateParameters> 
    <asp:Parameter Name="Title" Type="String" /> 
    <asp:Parameter Name="Description" Type="String" /> 
    <asp:Parameter Name="notandaID" Type="int16" /> 
    <asp:Parameter Name="ArticleExt" Type="String" /> 
    <asp:Parameter Name="Myndatexti" Type="String" /> 
    <asp:Parameter Name="Starts" Type="DateTime" /> 
    <asp:QueryStringParameter Name="id2" QueryStringField="ArticleID" Type="Int32" /> 
</UpdateParameters> 

Je reçois une erreur incompatibilité de type de données dans les critères d'expression Il semble qu'il y ait des différences de type entre le type qui est entrée dans la partie C# et e e aspx-part

Quelqu'un peut-il m'aider avec ceci?

+0

Ce n'est pas quelque chose que je fais jamais (je suis un programmeur Access), mais j'ai lu des réponses à des questions comme ça si souvent, que je me demande si le problème est que vous ne passez pas vos paramètres dans l'ordre? Le fournisseur Jet/ACE ne reconnaît pas les paramètres nommés, vous devez donc vous assurer qu'ils sont transmis dans l'ordre déclaré. Mais je pourrais mal interpréter la situation. –

+0

NON, l'insertion fonctionne très bien, et les paramètres de mise à jour sont dans le bon ordre, juste qu'il semble que la phrase insérée semble utiliser un autre format de la date même si cela semble correct, ce qui provoque la mise à jour échouer. – Bjork

+0

Dans Access et Jet/ACE SQL (c'est-à-dire, si vous le transmettez directement à Jet/ACE), le délimiteur # est utilisé pour les dates, et non "'". Essayez [CreatedBy] = # @ notandaID # et voyez si cela fait une différence (j'en doute un peu, mais c'est ce que vous feriez dans Access/Jet/ACE, et c'est peut-être le problème). –

Répondre

0

Je l'ai fait une fois ... Je l'Assigné en utilisant le code appréciais ci-dessous ..

com.Parameters.AddWithValue("EmpDoj", EmpDoj.ToShortDateString()); 

Il a travaillé pour moi .. Je pensais que ce pourrait aussi vous aider ...

plus , Je suis impatient de connaître la réponse, pourquoi la vôtre ne fonctionnait pas ...

Questions connexes