Wednesday, September 15, 2010

Procedure has no parameters and arguments were supplied

Problem : Procedure has no parameters and arguments were supplied

Stored procedure code

ALTER procedure [dbo].[GetCompany]
AS
begin
select * from Company
end


Method which calls the above procedure

public void RefreshCompany()
{
try
{
SQLCommand command=new SQLCommand();
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "GetCompany";
da.SelectCommand = command;
da.Fill(StaticValues.data.Tables["Company"]);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}

Now the problem is that first time everything is fine, but when the application calls it again (e.g. refresh after update)
it throws the exception "Procedure has no parameters and arguments were supplied". As it is evident that stored procedure does not actually expect any parameters.
It is just a plain select statement


Cause:
The same command object was used in all procedure calls, and it's caching the parameters of earlier call to another procedure

command.parameters collection wasn't cleared.

Solution
#1 command.parameters.Clear() => Clear the parameter cache.
#2 Use another command object for each query / procedure call.


Hope it helps
Jatinder Singh

Tuesday, July 27, 2010

Multi-Value Columns in SharePoint Designer Workflow

Requirement :

Create a workflow so that any new item created in the list should fire the mail to recipients.

#1 Create a Multi value column in a list

#2 Now on creation of new item attach the workflow to send the mail.

The multi value column is missing in workflow .The SPD suffers from a deficiency in the workflow component ,which doesn't allow you to send e-mail to multiple recipients from a multi-value column of a list using SharePoint Designer 2007 (SPD).

Solution #1

Turn off "Allow multiple selections" for your column (note the warning "This will remove all person values except the first one") . Now you should be able to provide the column as lookup column in workflow.

Change the workflow and then turn "Allow multiple selections" on for your column.

This solution is not acceptable as it removes all the values except first value. So the approach is good till development but once workflow goes to production you won't be able to touch the workflow or list where you would like to turn off "Allow multiple selections"

Solution #2

Create a variable var _employees in workflow

Set the value of variable "_employees" to your "multi value column".

Send the email using the variable "_employees"

The second solution is simple and elegant.


I hope it helps.

Monday, July 26, 2010

LOC in DOS

Though LOC for estimation is not very reliable , but still in case you need to find LOC of existing project. One way is to write a piece of code in your preferred language C#/VB.Net etc or another way is using some command like wc -l as in Linux.
In DOS there is no such command directly availiable , so how to go about this one?? I assume nobody is going to write pharse "I am genius" in deployed code.
So the trick is to find nonexisting text[/v] in lines and count those lines [/c]. For this to work copy all the source code files in one directory and run the following
C:\CS> find "I am genius" /c/v *.cs >ABC
Hope it helps

Filtering By ListTextField for GridDropDownColumn

We were using Radgrid for displaying/Editing information and to filter rows we were using filter mechanism as given by RadGrid. The issue faced was that we were unable to filter the rows on the GridDropDownColumn , so we tried to follow the suggestion as given at telerik site http://www.telerik.com/help/aspnet-ajax/grdfilteringbylisttextfieldforgriddropdowncolumn.html

We tried the suggestion #1 , everything was fine for display purpose. But as soon as we try to edit or Add a new row we were able to view both Hidden GridBoundColumn and GridDropdownColumn , and the value of both were getting passed to the objectdatasource we had for DML operations.

Now to solve the problem we used "readonly=true" for GridBoundColumn and it simply disappeared from edit form.
Explaination
In case editable column types (column types that implement the IGridEditableColumn interface) have a ReadOnly property that determines whether the column editor is visible in the edit form. When ReadOnly is True, the column editor does not appear in the edit form. ReadOnly does not affect whether the column is visible in browser mode.

I hope it helps

Tuesday, June 08, 2010

Access site column in Subsites

We have created a site collection and under it many sites and subsites, now our aim was to create some basic lists like state , city,country etc at the top level site and refer the same across all the subsites. We faced the problem ,where in a lookup column you can only refer the lists of current site. In order to add one of the columns from a Parent site list in a subsite list we did the following .
1. Create a site column. - In parent Site Go to Settings -> Site Column. Here Create a new site column and choose the type as Lookup. Get the Lookup Information from Another list and Select your Parent list and its realted Column.
2. Add site Column in your Subsite's list - Now go to your subsite list and goto list settings. Under Columns add a existing site column and select the above created custom column.
Hope it helps

Workflow stuck at Starting

Workflow stuck with "Starting" status is probably the most difficult to debug because there are generally no diagnostic entries in the ULS logs or event logs to point you to a problem.
The problem we faced at our work place is that all setting are as per this blog post http://www.tonytestasworld.com/post/Sharepoint-2007-Workflow-stuck-in-quot3bStartingquot3b-state-and-never-completes-when-set-to-start-programmatically.aspx .
i.e
1 Environment is properly configured with the SSP and everything set up correctly as mentioned in the blog.
2. Windows Sharepoint Timer service is up and running.
3. Domain account was used for configuring SSP.
Even after doing all the stuff workflows were getting stuck with a "Starting" status.
We have a custom workflow attached to a Document library and it is supposed to trigger when a new item is added or changed. The library has the 'require check out before editing' setting enabled so even a manual document upload to the library would first check the document in and then you'll be presented with the screen for providing any required metadata and once you are through that THEN the workflow would trigger (workflow requires a document to be checked-in before it can start).
So disabling the 'require check out before editing' solved the issue for us.

Monday, April 05, 2010

Skin not Applied to RadDatePicker inside UpdatePanel

We were facing this issue where the skin was not applied to the RadDatePicker , in case it is placed inside an UpdatePanel. After searching for a solution it was observed that atleast one DatePicker Control should be placed outside the UpdatePanel. Now the rest of the process becomes easy , we need to hide that dummy Datepicker control once the rendering is complete.
Code in aspx file

<aspx:updatepanel id="UpdatePanel1" runat="server">
<contenttemplate>
<!-- Put your content here -->
</contenttemplate>

</aspx:updatepanel>
<radcln:raddatepicker id="radDt" runat="server" displaydateformat="dd-MMM-yyyy" dateformat="dd-MMM-yyyy" width="100px" mindate="1/Jan/1900"></radcln:raddatepicker>

In code behind.
protected void Page_PreRenderComplete(object sender, EventArgs e)
{
radDt.Visible = false;
}
we can put the aspx and code behind segments in .master page , so all pages reflect the same.
Hope this helps.

Copyright © 2008 - Programming Discussions - is proudly powered by Blogger
Blogger Template