Using ISNULL With DATEDIFF Gives Wrong Number Of Arguments Error?
Jan 31, 2011
I have to believe that I'm just missing something silly on this one. It SHOULD work... but alas, it is not. Here is my code:
SELECT s.[id], s.[familyid], s.[lastname], s.[firstname], s.[middlename], s.[suffix], s.[nickname], s.[dob], fix(datediff(d, isnull(s.DOB, Now()), NOW()) / 365) as AGE, s.[allergies], s.[notes], s.[photographsOK], s.[school], f.[city], f.[state] FROM [Students] s, [families] f, [employee] e where s.[familyid] = f.[id] and f.[franchise] = e.[franchisename] and e.[username] = @Username order by f.[lastname]"
This was working fine before I put the "IsNull"handler in the datediff function to handle problems with null dates. Now I get the following error when I try to run it.Wrong number of arguments used with function in query expression 'fix(datediff('d', isnull(s.[DOB], now()), NOW()) / 365)'. I even tried using just the ISNULL(s.[DOB], NOW()) without the Datediff and get the same error.
I am maintaining a sql proc someone else wrote long ago. Basically I have a stored procedure which calls a function. If I try to run the stored procedure, or to make changes to it, and then run it, I am getting an error message which says "An insufficient number of arguments were supplied for the procedure of function dbo.GetRecentComment
This is very odd, because the stored procedure runs successfully when called via the C# code. Yet if it is run within query analyzer with the correct parameters, I get that error message. Here is a little peice of the stored proc which calls the function. And below that is the function which is being called. It appears that the second parameter passed to the function is optional, yet I am not sure. Anyway, here is some of the code from the proc, which calls the function.
SELECT CompletionDate, dbo.GetRecentComment(Request.RequestId) AS Comments -- This line is where the function is called FROM Request
Here is the function which is being called
ALTER FUNCTION [dbo].[GetRecentComment] ( @RequestId int, @SmallTag bit -- smalltag appears to be optional. ) RETURNS VARCHAR(500) AS BEGIN
I have a weird thing happening. I have two identical databases installed on one virtual machine but under two different instances of SQLServer. For some reason, periodically when saving from one it will save to the other instead. Using debug, I have verified that the connection string is correct and when the item saves, it still saves to the wrong database.I use session variable, and am of the belief that it might have something to do with it...and t hat when I go from one to the other it is still getting the connection string form the other for some reason.To make sure that it isn't a problem, I make sure that I completely close out one database before opening the other in a new IE window.I assume that when I completely close out an internet explorer window that it abandons all session states. Is that true?
I have confronted a problem of using MaskedEditExtender when try to restrict user to input a number mask with mask. User input of course has no problem. The problem is when the system get the value from database or somewhere (doing assignation), the textbox show the wrong value with the following mask setting: I am writing to contribute and share my solution: example:
textbox1: 1.1 (user input) by using the following mask: <asp:MaskedEditExtender ID="meeXML" runat="server" TargetControlID="textbox1" Mask="999.99" MessageValidatorTip="true" OnFocusCssClass="MaskedEditFocus" OnInvalidCssClass="MaskedEditError" MaskType="Number" InputDirection="RightToLeft" AcceptNegative="Left" ClearMaskOnLostFocus="True" ErrorTooltipEnabled="True"/> When the system get back the data, textbox1 will show: textbox1: 0.11 <- that is not the actual what I want: ========================================== the solution: ========================================== <asp:MaskedEditExtender ID="meeXML" runat="server" TargetControlID="textbox1" Mask="NNNNNNNNNNNN" MessageValidatorTip="true" OnFocusCssClass="MaskedEditFocus" OnInvalidCssClass="MaskedEditError" MaskType="Number" InputDirection="RightToLeft" AcceptNegative="Left" ClearMaskOnLostFocus="True" Filtered="." ErrorTooltipEnabled="True"/>
I apologize in advance for my poor english:1. I have a dropdownList within my datagrid and its already populated fine (22 rows in my datagrid)2. The select item for the 21 row is the same as the select item of the 22 row3. When trying to do selectedIndexChange for the 22 row, it didn't seem to work.The error:
Dim ddl As DropDownList = CType(sender, DropDownList) Dim dgi As DataGridItem = CType(ddl.Parent.Parent, DataGridItem) Dim rowID As Integer = dgi.ItemIndex
The rowID keep staying at 20 even though the selectedIndexChanged is happening in row 22( ie. rowID should be 21)
I'm creating a login page. I want to limit the number of login attempts, say not more than 5, in case of wrong.I want to do it without using the asp:loghin controls and the membership.How can restrict it??
I have a gridview that has a column of checkboxes in which you use to select a row of data. Once you select a checkbox or multiple checkboxes and click the 'process' button the data from the rows selected should enter a table in a database. It works fine when i check just one checkbox, but when i check more than one i get the following error: 'Procedure or function insCSSampleDet has too many arguments specified.' Below is a copy of my loop
For Each gvrow As GridViewRow In GridView2.Rows Dim CheckBox1 As CheckBox = DirectCast(gvrow.FindControl("CheckBox1"), CheckBox) If CheckBox1.Checked Then SamplesDataSource2.InsertCommandType = SqlDataSourceCommandType.StoredProcedure SamplesDataSource2.InsertCommand = "insCSSampleDet" SamplesDataSource2.InsertParameters.Add("CSHdrRowid", "1") SamplesDataSource2.InsertParameters.Add("CSPartno", DirectCast(gvrow.FindControl("Label2"), Label).Text) SamplesDataSource2.InsertParameters.Add("CSPartDesc", DirectCast(gvrow.FindControl("Label3"), Label).Text) SamplesDataSource2.InsertParameters.Add("CSQty", DbType.Int32, "1") SamplesDataSource2.Insert() End If NextFor Each gvrow As GridViewRow In GridView2.Rows Dim CheckBox1 As CheckBox = DirectCast(gvrow.FindControl("CheckBox1"), CheckBox) If CheckBox1.Checked Then SamplesDataSource2.InsertCommandType = SqlDataSourceCommandType.StoredProcedure SamplesDataSource2.InsertCommand = "insCSSampleDet" SamplesDataSource2.InsertParameters.Add("CSHdrRowid", "1") SamplesDataSource2.InsertParameters.Add("CSPartno", DirectCast(gvrow.FindControl("Label2"), Label).Text) SamplesDataSource2.InsertParameters.Add("CSPartDesc", DirectCast(gvrow.FindControl("Label3"), Label).Text) SamplesDataSource2.InsertParameters.Add("CSQty", DbType.Int32, "1") SamplesDataSource2.Insert() End If Next
After a day of seraching and not finding an answer, I decided to join and post my issue. I'm not sure why I am receiving the subject error considering just yesterday, it was working fine. If more code is needed to provide input on my problem, please let me know and I will get right on it."Dim v As New Vehicle(0)" is the cause of the error. Since this error occurs, a bunch of other errors will pop up not recognizing any of the properties or methods I've created in my Vehilce class. So I am guessing this is the root of the issue.
i am developing a webaaplication ASP.net using C# and MYSQL as backend..
i am facing problem to execute this query in MYSQL:
SELECT ID, Date, Event, Remark, school, section, class, schooltype, shift FROM sessioncalendar WHERE (school = 'SECONDARY SCHOOL') AND (class = 'IX') AND (section = 'B') AND (shift = 'SHIFT I') AND (schooltype = 'XYZ School') AND MONTH ( Date )= '6'
AS the query works well wethout addind AND MONTH ( Date )= '6' ... but when i add this line query generate error
( Error in list of function arguments: ')' not recognized. Unable to parse query text.)
While same query is working successfully with Sql Server 2005...but i hvnt found any reason why my query is not working with Date(datetime) column..i hv google about it..but i found synatax is same in both SQL SErver 2005 and MY SQL syntax
Into below code i am using it to check if the user had uploaded images before or not if yes then keep the old and update if the user has new files into fileuploads controls.
But what i am looking for to update the code and delete UID and use AdsID column " column data type is: Int" which is passed by query string QADNUM.
I tried to delete UID and use QADNUM instaed of UID but it dosent work and i tried to add QADNUM but i faced an error with code line:
<script type="text/javascript"> function configureDropDownLists(ddl_religion,ddl_caste) { var Hindu = new Array('Ahom', 'Brahmin-other', 'Intercaste','Kalita','Kayastha','kshatriya','Manipuri','Maratha','Nepali','Rajbonshi','Rajput','SC','ST','Vishwakarma','Other'); var Muslim = new Array('Ansari', 'Arain', 'Awan','Bohra','Dekkani','Dudekula','Jat','Malik','Qureshi','Khoja','Memon','Mughal','Pathan','Mapila','Shafi','Sheikh','Syed','Siddiqui','Other');
[Code] ....
Everything is working fine and i am able to update the second dropdownlist based on the item selected in the first dropdownlist.
The problem is that i am not able to capture the data to a cs file and upload then it to database and i am getting this error:
For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.
If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation
I already published my client's site and i received problem during loading page.
here's the error.
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1501: No overload for method 'UpdateBookInfo' takes '5' arguments
Source Error:
Line 33: //Update Book Info Line 34: Book BookProcess = new Book(); Line 35: BookProcess.UpdateBookInfo(SKU, Title, Description, Price, Status); Line 36: Line 37: //Update Book Picture
I have a very weird thing happening. I have two databases that have exactly the same tables but different database names on the same virtual machine, but in different instances of SQL Server. For some reason, when using one of them, it will save to the other. In debug, looking at my connection string..I have verified that it is correct, yet when I allow the save, I look in the table and it isn't there, it is in the other database that is in a table with a completely different name and in a different instance of SQL Server.
I didn't want to post anything before i search and upgrade to the latest ajax3.5I copied the zip extracted it in a location and then on vs2008 i added a toolbox and i imported the jaxcontroltoolkit.dll(the very first on the folder).
I got the controls and all is fine until then.
The problem (i previous had with the beta version) stayed.
I did not handle an exception and vs prompted me for the location of accordioncontrol.cs (i don't clearly remember the control), saying there is no source code and i should provide one.I clicked cancel (there is clearly no accordion .cs control on the zip) and the program got the exception on the web page.Ok.
Now everytime i put a breakpoint on the page and it reaches the last end sub it prompts me this "There is no source code available for the current location."I can hit F5 and pass this, however if i hit F11(next statement) it prompts me for the location of the picture i include here. I remember finding the cs somewhere for the beta and included it and it prompted me for wrong version or something on the unhandled exceptions so i have forgotten the error (because i usually handle all my exceptions so i didn't have any for a while).
This works.. I can then colour my grid view cells accordingly using the substring function.. the problem is that I have been told that using GETDATE three times is not a good use of resources, is it possible to use the Datediff function to get the same result?
My requirement is, I have one text box and that text box accepts US Format 10 digit phone number like 555-555-5555. I want when user enter 5555555555 it automatically convert this in 555-555-5555 and if he enter some wrong number then show him error and if dont want to enter any thing then there should not be any error.
<th style="width: 150px">Home Telephone </th> <td> <asp:TextBox ID="txtHome" runat="server" MaxLength="12" ValidationGroup="vUserDetailsB" Width="252px" CssClass="txtBox" TabIndex="19"></asp:TextBox> <cc1:MaskedEditExtender ID="meeHome" runat="server" TargetControlID="txtHome" AutoComplete="false" MaskType="None" Mask="999-999-9999" ClearMaskOnLostFocus="true" InputDirection="LeftToRight" /> <%-- <cc1:MaskedEditValidator ID="mevHome" runat="server" ControlToValidate="txtHome" EmptyValueMessage="Telephone Number is required." ValidationGroup="vUserDetailsB" ControlExtender="meeHome" InvalidValueMessage="Valid Telephone Number is required." IsValidEmpty="false" ValidationExpression="^d{3}-d{3}-d{4}$" Font-Size="8pt" />--%> <asp:RegularExpressionValidator ID="revHome" runat="server" ControlToValidate="txtHome" Display="Dynamic" ErrorMessage="Invalid Home number. Number should be in the format: 555-123-4567" Font-Size="8pt" SetFocusOnError="True" ValidationExpression="d{3}-d{3}-d{4}" ValidationGroup="vUserDetailsB" Width="100%" meta:resourcekey="txtHomeResource1"></asp:RegularExpressionValidator> </td>
Whats happenening, If i entered any thing like 5555555555 and it is coverting to this 555-555-5555 format which is correct and then when i moved to another textbox it is throwing error "Invalid Home number. Number should be in the format: 555-123-4567" and this format changes to 5555555555 and its not going ahead.
I have a base class that has a specific parameterized ctor. I use it as the base for several concretes. These concretes have zero need to alter ctor behaviour, and thusly, I see no reason to define one. However, as you may guess, I get the "class has no ctor that takes 0 arguments" error on compile. Is there a keyword I can place on the base class ctor that will prevent the error? Or maybe another way around it? This is indenpendant on any ioc usage by the way. It's merely a set of objects that MUST take an argument, and it so happens, the base class handles everything that it needs. The derivations simply no reason to re-declare the ctor, just to pass it on to base();