DataSource Controls :: Binding A Complex Query To A Data Control?
Apr 21, 2010
I'm trying to implement a recipe search page that allows users to specify search criteria by selecting checkboxes that match desired recipe attributes. All the data is stored in a database uing tables with 1 - many relationships. Each recipe can have multiple attributes from any of 5 attribute tables. I want to find all the recipes that match the user-selected criteria and display them in a grid. For example, the user may want a breakfast (attribute 1) recipe that is made with fruit and milk (attributes 2 and 3), is low-fat and high fiber (attributes 4 and 5), and takes less than 15 minutes to prepare (attribute 6). The query for this example might look something like:
SELECT distinct recipes.name, recipes.difficulty, recipes.preptime, recipes.cooktime
FROM recipes, recipeMeals, recipeDishes, recipeFoodGrps, recipeNutrients, recipeFixTimes
WHERE recipes.id = recipeMeals.recipeId and recipes.id = recipeDishes.recipeId and recipes.id = recipeFoodGrps.recipeId and recipes.id = recipeNutrients.recipeId and recipes.id = recipeFixTimes.recipeId and recipeMeals.mealId in (1) and
recipeDishes.dishId in (5) and recipeFoodGrps.fdGrpId in (1, 6) and recipeNutrients.nutrAttsId in (2, 3) and recipeFixTimes.fixTimeId in (1)
I' can generate the SQL but can't figure out how to bind it to a grid control. No could I see how to get any of the data controls to build the query for me. Is there a way to say "execute this query and display the results in a GridView"?
View 4 Replies
Similar Messages:
Jun 14, 2010
I have following tables.
Items
ItemId
ItemName
GroupId
CatId
1
Apple
5
6
2
Banana
5
6
3
Blackberry
5
6
4
Grapes
5
6
5
Guavas
5
6
6
Beans fresh
5
7
7
Bitter Gourd
5
7
8................
View 7 Replies
Oct 15, 2010
We know that using something like Bind("CustomerName") can be used in the Text property of a label control inside a gridview, where CustomerName is a property of the object whose collection is bound to the gridview. If that property is of a complex type (object of another class), how do we use a property of that inline object as a binding for the gridview column?
View 3 Replies
Mar 15, 2010
In my past I had created the following web page in web forms and I'm learning asp.net mvc right now , I had given it a tought and I run into conclusion I really wont know how to do the same page with asp.net mvc
before explaining you the actuall problem I would explain you the Model The model is a pretty simple , it for few columns which are bool , and a lot of them which are varchar(MAX) The View is built the following way
the bool parts of curse got a check box but the varchar parts are the complicated ones In my web form page i got the following code for each varchar property in my database
[Code]....
my server script gets the following page apon submit and checks if radio button 1 or 2 is selected if 1. it inserts the link as it is into colmn property while if it is 2. it saves the file on the server and saves the file location into the colmn property.
View 3 Replies
Jan 26, 2010
I'm having trouble finding a good tutorial on binding complex lists to an object. Essentially we have currencies that are user defined, we need to generate a form for each currency to allow the user to input exchange rates. I think I'm doing my list properly according to this post, however I'm not getting any data bound. here is my ASPX snippit.
[Code]....
Here is my form data object and associated objects.
[Code]....
Here is the html that is rendered.[Code]....
I'm having trouble finding a good tutorial on binding complex lists to an object. Essentially we have currencies that are user defined, we need to generate a form for each currency to allow the user to input exchange rates. I think I'm doing my list properly according to this post, however I'm not getting any data bound. here is my ASPX snippit.
[Code]....
View 1 Replies
Aug 11, 2010
I have a gridview that I want to bind the results of a query to it once a user selects a value from a drop down list.
The query selects the same row from the same table but selects different fields based on the drop down list value selected
I get to the query selection but it does not refresh that page with the populated gridview.
Here's the code behind code
protected void ddlQuantity_SelectedIndexChanged(object sender, EventArgs e)
{
SqlConnection connection = null;
connection = new SqlConnection(ConfigurationManager.ConnectionStrings["PSI_DB_1ConnectionString"].ConnectionString.ToString());
connection.Open();
String nEstno = Request.QueryString["id"];
int id = Convert.ToInt32(Request.QueryString["id"]);
string SQLquery = "";
switch (int.Parse(ddlQuantity.Text))
{
case 1:
SQLquery = "Select Quan1"etc...;
break;
case 2:
SQLquery = "Select Quan2"etc...;
break;
case 3:
SQLquery = "Select Quan3"etc...;
break;
case 4:
SQLquery = "Select Quan4"etc...;
break;
case 5:
SQLquery = "Select Quan5"etc...;
break;
}
SqlCommand Cmd = new SqlCommand(SQLquery, connection);
SqlDataReader Dr = Cmd.ExecuteReader();
if (Dr.HasRows)
{
gvEstQty.DataBind();
}
Cmd.Dispose();
connection.Close();
connection.Dispose();
}
View 2 Replies
Jan 21, 2010
after I pass querystring parameter to page,page works as expected,but after that when I change my control parameter(dropdownlist selected value how can I set querystring to null or empty...
View 1 Replies
Jan 11, 2010
I ran into this kind of situation many times without a nice solution. Binding a data source to a gridview and one of the column require nested query. Is it possible to have a callback function other than Eval()?
something like CallbackFunc(Eval("SomeField"));
View 2 Replies
Aug 28, 2010
consider classic example: Product and Category editing Product in dropdown Id of Category is selected - Category mapped as object with all fields empty except Id when submitting Product edit form - validation gives an error: "Category name is required" (I have Required attribute on Category Name property)
How deal with such errors if I want to use built-in validation (
[Code]....
Writing custom data binder which would fill all such id-only-objects with values from database comes to mind.
upd: I did small research of mvc code and found out that validation happens before binding - so this solution would't work.
View 13 Replies
Sep 29, 2010
Scenario:
I am creating a custom gridview control which has a custom CheckBoxTemplateField column (deriving from TemplateField class). This template field column has custom Checkboxheadertemplate (implementing ITemplate) and CheckboxItemTemplate (also implementing ITemplate). In InstantiateIn method of both templates (header as well as Item template), I am adding a checkbox control which has Autopostback = true.
My requirement is:
I want to mark all the values in the binding column of datasource if checkbox in headertemplate is checked. I dont want to mark only rows visible on grid. I WANT TO MARK ALL ROWS IN DATASOURCE. I want to do this in _CheckedChanged event of checkbox in header template.
Problem I am facing: When I check/uncheck the checkbox in header, it postbacks. so in OnCheckedChanged event, gridview's datasource is null. Secondly, in any event of gridview, I could access only those rows of datasource for which corresponding rows are visible in gridview through Gridviewrow.DataItem property. But I want to set it for all rows in datasource.
View 5 Replies
Apr 17, 2010
Consider a fairly complex business object. For the sake of discussion, let's think about a "ClassRoom" object - that will have some attributes which occur once, such as "capacity" and "area". It will also have some repeating attributes - perhaps "desks" which will itself be a collection of desk objects. The desk object will in turn have attributes such as "width" and "height".My example is more complex, but that should show where I am coming from. The business object, as you would expect, exposes methods to get the attributes in and out. There is also logic included to perform the underlying database updates. Of course, the necessary business validation is also in there.
In terms of binding to the ASP page, I will need to bind the attributes of "ClassRoom" to a set of fields on the page (using one method on the object). I will also want to bind the desks collection to a Repeater or GridView (using another method on the object).Presumably, I need to find a way to use a single instance of the ObjectDataSource so that the updates to the two (or more) disparate sets of data can be kept in step. I suspect that if I simply put two data sources on the page, I will get two instances and therefore no correlation between them.This can't be a unique problem, but I'm struggling to find any useful information.
View 3 Replies
Apr 15, 2010
[Code]....
What I want to achieve is the ID of the property: item.Item.ID to be bound to the ID from the (route)URL. However I can't get it to work. I tried using [Bind()] attribute.
I fixed it now using a hidden field in the form like so:
<%= Html.HiddenFor(model => model.Item.ID)%>
However this feels a bit icky. I'd like to know if there is a better cleaner way of doing this?
View 1 Replies
Jan 6, 2011
I am using ASP.Net MVC2 and LINQ to SQL. I am using DataAnnotations and model binding in conjunction with a Form/View and its working beautifully well. Loving that.. My view is an "Add new Employee" form that's adding a new "Employee" complex object. Every Employee also has a child complex object called an "Address".
I am using the bound Html helpers in the view, such as Html.TextBoxFor(model => model.NewEmployee.FirstName) for example. Working beautifully well, validating beautifully well both client and server and coming into the controller fully populated and ready to be saved! Exciting.. ModelState.IsValid returns true and I go to save the new Employee.
The Employee is created fine but the system also creates a blank/new Address record in my Addresses table even when the Address fields are blank! How can I prevent any Address from being created, in situations where I ONLY want to create a new Employee with no Address. An example is when the user supplies an existing Address, then I wish to simply set the new Employee's AddressID to that of an existing physical address (I hope that makes sense). But it could apply to any situation where you need to create a new complex object, but you don't wish for LINQ to create any of its child complex objects. I have tried setting NewEmployee.Address = null after it is received in the controller, but even after that, a blank/new Address is still created. Even if I try NewEmployee.Address = SomeExistingAddress, it does correctly link the Employee to the existing Address, but it STILL goes off and creates another redundant new/blank address record! Which is really weird..
View 10 Replies
Jan 5, 2011
I have a "Create New Employee" ASP.Net MVC form. My complex object is an Employee and an Employee has an Address, which is another Complex object. On my View/Form I collect all required values for both the Employee and the Address. I'm using the bound HTML helpers such as: Html.TextBoxFor(model => model.EmployeeAddress.StreetName)
AND
Html.TextBoxFor(model => model.NewEmployee.FirstName)
This is all working beautifully well. Model binding is working like a dream, both server side and client side validation using DataAnnotations is working beautifully well and I am nicely receiving my populated complex objects as expected in the Controller.. Now I'm trying to save.. The Employee should always be newly created, because its an "Add New Employee" form. But sometimes the Address is an existing Address and I don't want to insert another one. Rather, I just want to link the Employee to the existing AddressID of the one that already exists in the database.
So I wrote a nifty GetExistingOrCreateNewAddress(Address PostedAddress) method which works great so I end up with the correct Address to use and link to the about to be saved Employee object. This is all happening in the same DataContext, so no problems there..
BUT even when I link the about to be saved Employee object to an existing Address, on save a new/empty Address row is created in my Addresses table. Even though the newly created Employee does link correctly to the existing Address I told it to! Why is it so??? And how can I save the new Employee without LINQ automatically creating a blank Address for me. Because I'm explicitly specifying an existing Address it should be linked to instead!
[HttpPost]
public ActionResult CreateEmployee(EmployeeDetailsViewModel NewEmployeeDetails)
{
if (ModelState.IsValid)
{
EmployeeRepository ER = new EmployeeeRepository();
// Fetch or Create the appropriate Address object for what has been entered
Address ActualAddress = ER.GetExistingOrCreateNewAddress(NewEmployeeDetails.EnteredAddress);
// Link this Address to the "about to be saved" Employee
NewEmployeeDetails.Employee.Address = ActualAddress;
// Lock it in..
ER.SaveNewEmployee(NewEmployeeDetails.Employee);
View 2 Replies
Feb 5, 2010
I have two business objects mapped via LINQ to tables. One of the objects contains an instance of the other object and share a key as an identifier.I want to retrieve Class A and within class A all of Class B's values as well. What I am doing is this:
[Code]....
[Code]....
This seems a little clunky, as in slow. Is there a better way to get the Class B (User) information without making a query every time?
View 4 Replies
Jun 11, 2010
I want to have a paging mechanism. Its a bit hard to show all data and tables for this query but this is the current resulset.
As you can see Id has several duplicate entries (EventId as well but thats as its supposed to be):
Rownum EventID Id UserId
1 22 10 03088B17-36B2-425C-BD08-13E63AF07254
2 22 10 03088B17-36B2-425C-BD08-13E63AF07254
3 22 11 39E49E5A-7A42-43B6-882C-B22EE4C0922A
4 22 11 39E49E5A-7A42-43B6-882C-B22EE4C0922A
5 22 12 15C405BB-BD9A-4C6A-BF21-A95763FAD613
6 22 12 15C405BB-BD9A-4C6A-BF21-A95763FAD613
7 22 13 15C405BB-BD9A-4C6A-BF21-A95763FAD613
8 22 13 15C405BB-BD9A-4C6A-BF21-A95763FAD613
9 22 15 00000000-0000-0000-0000-000000000000
10 22 15 00000000-0000-0000-0000-000000000000
Now, I want to have paging and I'm doing that like this:
[code]...
In thew above query, when I leave out seltion of the RowNum column (so instead having: "SELECT distinct eventid,id,userid FROM") only 3 records are shown when I have a maximum pagesize of 5 passed to the @maximumRows variable.
What can I do to have exactly 5 records shown?
View 6 Replies
Jan 18, 2010
What I want to do is create a parameterized query in the code behind with the parameters being values from the calendar control
I'm trying to modify the select command already declared in the sqldatasource so I think it should be something like
SqlDataSource2.SelectCommand = "SELECT * FROM Activities WHERE StartDate>@StartDate AND StartDate<@StartDate2"
but the main problem I am having is how to declare the value of @StartDate, I thought it would be simply calendarID.selecteddate but this doesn't seem to be right, I've tried different variations I've found in similar threads but can't get it right
I'm not sure if grouping my results is complicating matters but when I hard code dates in it works Ok so I don't think so
the code I was trying to get working is
Dim theFilter as String = "WHERE StartDate>@StartDate and StartDate<@StartDate2"
SqlDataSource2.SelectCommand= "SELECT DATENAME(month, StartDate) AS Expr1, YEAR(StartDate) AS Expr2, SUM(CGUPreSchool) AS Expr3, SUM(CGUPrimary) AS Expr4, SUM(CGUSecondary) AS Expr5, SUM(CGUYouth) AS Expr6, SUM(CGUAdult) AS Expr7 FROM Activities WHERE " & theFilter &
" GROUP BY YEAR(StartDate), DATENAME(month, StartDate)"
I am trying to build the filter part dynamically you see but can't get this right
View 3 Replies
Apr 21, 2010
I am new to asp.net. i am just trying to get database query result and store it into label Text in c#. Is there any way to do that?
View 5 Replies
Jun 3, 2010
new to this forum, and visual studio web development. Here is what I want to do: -From a webpage on my website, I would like to upload multiple photos to an sql database, but instead of having a container or field name for each photo, i would like to have multiple photos on one field, on each record.Then, I would like to display it back one record at a time, but with the capability of displaying all the pics from the one field holding the pics. Similar to the function in MS Access, where I can upload mutiple photos in one field and then display them back by just scrolling through them on the same record.
View 2 Replies
Sep 8, 2013
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm8.aspx.cs" Inherits="WebApplication5.NewFolder4.WebForm8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
[Code] ....
*** You can chnage your Gridview style as you needÂ
Bind empname only from the XmlDataSource to GridView where Officetime="today"
Output :
Samanta
Andria
View 1 Replies
Jun 1, 2010
I've been reading up on SQL Injection and want to go back and implement some measures to prevent these kinds of potential attacks.For example, on our company intranet, we have an address book feature and a search function so the user is able to look a company or a person up from the database/The user will enter their query into a TextBox control and click the Submit button, calling the following function:addybookDS1.SelectCommand = "SELECT * FROM [addressbook] WHERE COMPANY LIKE '%" + search1 + "%' OR CONTACT LIKE '%" + search1 + "%' OR LASTNAME LIKE '%" + search1 + "%' OR EMAIL LIKE '%" + search1 + "%'"search1 is the TextBox controlI had previously implemented this measure:search1 = Replace(search1, "'", "''")But I want to know if there is more I can do here and how I can go about doing it.
View 16 Replies
Jun 8, 2010
I am very new to entity, sql, c#, and asp.net so this might be something easily fixed. I am attempting to display all the inactive products stored in my table called products in a datagrid.
var productQuery = from b in solutionContext.Version
where b.Product.Name == search && b.Product.ActiveNumber > b.VersionNumber
select new Product
{
Name = b.Product.Name,
Description = b.Product.Description,
ID = b.ID,
LastNumber = b.Product.LastNumber,
MiddleNumber = b.Product.MiddleNumber,
RSTATE = b.RSTATE,
ActiveNumber = b.Product.ActiveNumber,
LastModified = b.Product.LastModified,
ParentID = b.Product.ParentID,
ProductType = b.Product.ProductType
};
ProductsGrid.DataSource = productQuery;
ProductsGrid.DataBind();
I am getting this error: $exception {"The entity or complex type 'SolutionsModel.Product' cannot be constructed in a LINQ to Entities query."} System.Exception {System.NotSupportedException}
View 1 Replies
Aug 17, 2010
I have written a web project using Visual Web developer 2008 and SQL 2005. I need to create a complex query and bind it to a repeater.
I have 3 tables
Table 1 - Department
Dept_Id (int) primary key
Dept_Name (vchar)
Include_Unavailable (bit)
Table 2 - Employee
Employ_Id (int) primary key
Dept_Id (int) foreign key
Employ_Name (vchar)
Table 3 - Schedule
Sched_Id (int) primary key
Employ_Id (int) foreign key
Date (datetime)
My query is as follows:
SELECT Department.Dept_Name, Employee.Employ_Name, Schedule.Date
FROM Department, Employee, Schedule
WHERE ??
In my query I want all departments and employees listed who work on a particular date. In addition, if the Department.Include_Unavailable is 'true' I want to create a row with the department and employees who work in that department even if they are not schuled to work. I will eventually list these employees as 'unavailable' but do not want to list all unavailable employees as unavailable. Only employees that work in departments that have Department.Include_Unavailable set to 'true'
View 4 Replies
Mar 8, 2011
I am trying to bind upto 3 values to a HyperLink control in a DetailView control to create a query string but it does not seem to work.
Following is my code for the HyperLink:
[Code]....
The parameters UserName, FirstName and LastName are column names from the sqldatasource.
View 2 Replies
Jan 19, 2011
I'm not having much luck trying to bind data to an <asp.Calendar> using a datatable. I've tried it on a <as.Label> and it works fine.
code:
[Code]....
View 2 Replies