C# - Set Sql Parameters For An SqlDatasource In The Code Behind
Feb 9, 2011How can i set sql parameters for an sqlDatasource in the code behind?
I am trying like this:
[code]....
How can i set sql parameters for an sqlDatasource in the code behind?
I am trying like this:
[code]....
I have asked similiar question before where I have two control on the page header says "username" and "gender". User can select both the control or either one and the page will execute searching based on the criteria supplied. So if username supplied
SELECT * FROM [this_table] WHERE username = @username
and if gender supplied
SELECT * FROM [this_table] WHERE gender = @gender
and if both supplied
SELECT * FROM [this_table] WHERE username = @username AND gender = @gender
I know this sounds not very complicated but in my case, I am having like more than 10 controls up there. It is something likeusername, gender, age, date of brith, title, father name, frst name, last name, blur blur blur and it's a lot then I started to lost. if i were to use if else caluse on code-behind and produce query, it would end up writing a lot of if-else and if i use stored procedure (with if-else) then my stored procedure would contains a lot of if-else statement. I am fairly new to this concept and if I'm on the wrong track, please correct me. Is there any better way to save my hair without actually going through each
if-else statement to build the query ?p.s. I'm using GridView and SqlDataSource command to display the result back on .aspx page.
I am trying to check whether a username exists in my database before inserting the new row & display a message to the user if it does.
On my SqlDataSource my InsertCommand looks like this:
InsertCommand="IF NOT EXISTS (SELECT * FROM Users WHERE UserName = @UserName) BEGIN INSERT [Users] ([UserName], [FirstName], [LastName], [City], [State], [Country], [CompanyName], [Active], [PasswordHash]) VALUES (@UserName, @FirstName, @LastName, @City,
@State, @Country, @CompanyName, @Active, @PasswordHash) END"
This works as expected: If the username is unique, the row is created.
If the username already exists, the row is not added.
The problem is, if the row already exists, the insert is rejected but the user is not notified.
So my question is, is there a way I can notify the user?
Maybe something like: InsertCommand = "If Not Exists (select....) Begin Insert...Else Notify User Somehow End This is a basic database, I'm not using the built-in membership provider nor will be.
I have an ASP.NET 3.5 web form with a DropDownList bound to a table of company names in a database. I also have a data bound GridView which I would like to update with data from the database depending on the company name selected in the DropDownList, so that the SelectCommand for the GridView's SqlDataSource is:
SELECT Registration, Telephone, Profile FROM {CompanyName}_VehicleData
Where {CompanyName} is whatever is selected in the DropDownList. I've used the Command and Parameter Editor to create a ControlParameter pointing to the SelectedValue of the DropDownList, but I don't know how to write the SelectCommand query to concatenate the parameter to '_VehicleData'.
I am trying to pass the parameters dynamically thru Sqldatasource and get the results in grid view. Based on the dropdown list selection it has to show the results in grid view. When I hard code its giving correct results but when passing thru parameters i'm unable to get the results in grid view.
Output shud be something like this:
Select the value: 123
124
125.
Lets say user selects '123', the query it runs in sqldatasource is Select col1,col2,col3 from table1 where col1 LIKE '123%'
results will be 12301,12302,12303 with other columns in grid view.
[code]....
I have big filter coming from database by using storedprocedure. This stored procedure contains about 12 parameters. In asp.net page I select these values and after doing that I want to pass these values to SqlDataSourec which is bound to gridview. How can I pass these values to SqlDataSource, manually in codebehind?
View 8 RepliesI am working on a form that I would like to display a dropdownlist or textbox to insert data into the same field.
Currently it is setup where the end user can use one or the other but not both. I am running into a problem getting with the insert parameters for the secondary control. In this case the textbox.
Is it possible to use and Or statment in my Insert Query? I have tried to no avail.
[Code]....
I have a FormView which is bound to an SQLDataSource. When a user clicks on a save button the form, I need to write any changes made to the FormView back to the table.
I have a Stored Procedure on my MSSQL 2005 database that should be executed when the user clicks on the save button.
It appears the Update is firing, but when I trap the DbCommand object in the SQLDataSource's 'Updating' event, all of the parameters that should be passed to the Stored Procedure are coming through as NULLs. Consequently, the Stored Procedure isn't updating anything.
In the click event of the save button I'm explicitly firing the SQLDataSource's Update method:
[Code]....
The parameters in the SQLDataSource <UpdateParameters></UpdateParameters> section appear to be correct.
Can anyone give me an idea on what to investigate to figure out why it appears the Update is only picking up NULLs?
if i do this to set the fetch parameters:
dsList.SelectParameters["client_id"].DefaultValue = Session["client_id"].ToString();
where dsList is my datasource, it works.
but wen i do the samething for the *%^&* insert, it doesnt:
dsList.InsertParameters["client_id"].DefaultValue ="1234";
it keeps saying its null, i dont understand why it woudl be doing this?
I should perform a Query like this Select * from produtcts where model like @MODEL Now if model is selected from combobox, it should be Select * from produtcts where model like '%MODEL1%' while, if selected chooise is null, it should be like each element in my combobox. how should i do this (in SqlDataSource)
View 5 RepliesI use the sqldatasource control a lot with stored procedures. But this time I'm using some code I found online where I am defining the new sqldatasource in the code and using it. You can see this below. I am getting a NullReferenceException on the first SelectParameters line and not sure why. Do I need to add the parameters different?
Code:
Dim SqlDataSource As New System.Web.UI.WebControls.SqlDataSource()
SqlDataSource.ConnectionString = ConnectionString
SqlDataSource.SelectCommand = "MySprocName"
SqlDataSource.SelectCommandType = SqlDataSourceCommandType.StoredProcedure
SqlDataSource.SelectParameters("Distance").DefaultValue = 25
SqlDataSource.SelectParameters("ZipCode").DefaultValue = "31410"
Dim arg As New DataSourceSelectArguments()
Dim dv As System.Data.DataView = DirectCast(SqlDataSource.[Select](arg), System.Data.DataView)
I have a page called Page2.aspx and it is called by another page called Page1.aspx and Page1.aspx passes two parameters namely: Name and Category to Page2.aspx. Does anyone know why the following code from Page2.aspx is not working and it keeps giving an error message as follows: " You have declare the parameter @Username".
string Cat1;
string Name1;
[Code]....
although I've searched already, but here is the thing:I have a ModalPopup wich have a Textbox, a Button and a GridView inside. The Gridview is binded to a SQLDatasource object, and the Select query is something like "SELECT field_1, field_2, field_3, field_4 FROM Table_Name WHERE field_1 LIKE '%@Parameter_2%'".This ModalPopup is used (or gonna be used) to search for a field, so the parameters received by the Query is the text inside the Textbox, I've linked thid inside the SQLDataSource Wizard.The problem is that everything works perfectly fine... inside the panel WITHOUT the ModalPopup Extender, but whe I add the Extender the filter function doesn't work.Here is my code:
[Code]....
Notes: I have a ScriptManager inside the MasterPage, so I don't have to insert one in every page. Also I've tested the code in a new page (the one I use for testing), and it works fine, it filters and everything, the problem is when I add a ModalPopup to the panel.
I got DDL1: 10 miles
20 miles
TextBox1 : 'AAA20'
Button:
When user selects 10 miles from dropdownlist DDL1 and types AAA20 in textbox1 which is of type text, on button click it has to pull all the columns from database and show results in gridview using sqldatasource store procedure. I'm stuck in server side code..how to pull the data..in store procedure I'm passing two parameters val1 and val2. val1 gets data from DDL1 and val2 gets data when user types in textbox1 and it has to validate the text...see the code below mentioned and tell me how to pass the params and get the data in gridview...
[code]....
a FormView that is linked to SqlDataSource1a Repeater control (inside the formview) that is linked to SqlDataSource2Thus representing a simple "1 to many" or "parent/child" relationship in the database!qlDataSource1 is simple in that it just retrieves a straight set of records from a table and they are displayed back in the FormView (nothing special happening there).SqlDataSource2 has parameters that filter the contents of the repeater based on the record that is shown in the Formview. This would normally be simple enough to set up by setting the parameter to the formview.selectedvalue property.HOWEVER - THE PROBLEM ARISES...The formview has multiple DataKeyNames because the table that the SqlDataSource1 links to has a compound key. So to filter the Repeater correctlySqlDataSource2 needs to map 3 parameters to 3 data key values in the formview.Any ideas how to do this?I've tried setting the SqlDataSource2 parameters to:
<SelectParameters>
<asp:ControlParameter ControlID="FormView1" Name="Parameter1" PropertyName="DataKey(0)" />
<asp:ControlParameter ControlID="FormView1" Name="Parameter2" PropertyName="DataKey(1)" />
[code]...
Can the select command of a SqlDataSource be given by code in the code behind file. Also by calling the SqlDataSource.Select can the select statement be executed?
View 3 Replies[code]....
Is ther a way I can tie DataSource to SqlDataSource on aspx page and pass select parameters?
1. I have a GridView on my page and it uses sqldatasource with parameterized query. What I want to do is, on page load (where nothing has been selected so no parameter supplied), I want it to query everything (something like SELECT * FROM [this_table]) but since my SelectCommand is something like
SELECT * FROM [this_table] WHERE [this_column] = @someParameters AND [that_column] = @someParameters.
Can I play around with default value to achieve something like that but how ? Now, when the page loads, it doesn't show anything (No Gridview).
2. On my page, I made something like (username, gender, address, and more) and one single search button. That means, no single control enable auto postback. What I am trying to accomplish is building dynamic query
(if username specifed -> SELECT * FROM [this_table] WHERE [username] LIKE @username).
If both username and gender are specified (SELECT * FROM [this_table] WHERE [username] LIKE @username AND [gender] = @gender) and you know the rest. How can I do this using GridView and SqlDataSource ? To my knowledge, I can only specify one SELECT statement in a sqldatasource.
To connect to my database I used the wizard to make SQLDataSource. But I need to access it in code behind, to store my data in the database. Does someone knows how I can do that?
This is the code:
<asp:SqlDataSource
ID="MySqlDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:HELPDESK_OUTLOOKConnectionString3 %>" SelectCommand="SELECT
hd_aanvraag_fase.aanvraag_id,
[Code]....
i open a sqldatasource for binding on listview.
I would like also to read a field on first record for print it.
How can i access to my sqldatasource from code behind ?
I have a dropdown within gridview i have binded that dropdown with datasource values.
i will select any value from dropdown then it will save in database.
now i want to show the database value in the top value in same dropdown with sqldatasource.
Suppose i have value in dropdown from sqldatasource is test,test1,test2.
Suppose i have selected test1 then it will save in database now i want that dropdown show this values test1,test,test1,test2
What ive been using now is getting datas in code-behind, passing datasource into a Session, re-binds it to a gridview whenever there's paging/sorting needed. What i want to know is what is better if its performance we are talking about?
Is it datasource into a session Or SqlDataSource for which I know whenever paging/sorting needed is that sqldatasource opens up a DB connection to get the datas again?
what i would like to do is when the value of my sqldatasource is returned, then if it is null, run a code, in my case, redirect them to the login page, heres my code:
string connectionString = ConfigurationManager.ConnectionStrings["PokemonPlanetConnectionStrings"].ConnectionString;
string insertSql = "SELECT * FROM LoggedInUsers WHERE UserId = @UserId";
using (SqlConnection myConnection = new SqlConnection(connectionString))
[Code]....
Now what i would simply like to do is, if the select statement searches the database, and the result is not found, the simply redirect them to "register.aspx"
Basically, what I want to do is to get all my data in 1 statement and then pull data from that into a GridView. I already have the columns that I want displaying in the GridView, but now I want to insert a footer row in between the header row and all the datarows, that contains a couple columns that will be the same for every row in the GridView. So something along the lines of this:
Header1 Header2 Header3
Dept: Technology
data1 data2 data3
data4 data5 data6
data7 data8 data9
The thing is, I don't know what that "Dept" will be, so I want to pull it from my SqlDataSource that already has it.
i have a really annoying problem in that i need to programmatically create a SQLDatasource and then add it to my asp.net page on the load event. If I do this it all seems to work ok in terms of data binding but for all buttons on the page their postback events stop working?Is this a know issue or must I be doing something wrong?
View 3 Replies