DataSource Controls :: Passing Results / Parameters In LINQ
Jan 20, 2010
im new to linq and im having lots of trouble creating complex queries.. My problem mainly is that i am using Linq as a BLL.
i created a dbml (with namespace called DAL) file with 2 tables with a one to many relation. Pop and City. There is a forgien key in pop that points to a city. I also created a class called Pop that inhertis DAL.Pop. Now in my ASPX page, i want to call a function in the Pop class that would retrieve some Pop according to its ID, but i need the city name as well.. Ive been going around this in circles for days. I dont know how to write the Linq syntax and i dont understandd how my function's signature should be like.. I want to recieve a table that i can bind to a Gridview and preferable, specify which coloumns to bind.
I followd Brian Orrell LINQ tutorial for paging/sorting and created a gridview bound to an ObjectDataSource through a method call which gets data from adatabase. My form includes two buttons with a textbox next to each one of them. I need to be able to populatte th egridview depending on the button that was pressed, I cannot figure out how signal my method which button was pressed. [Code].... [URL]
I have an ObjectDataSource3 that I am trying to use to insert data from:
From: Dropdownlist1.selected value To: (CustomerID) From: Dropdownlist2.selected value To: (ProductCode) From: txtTitle (Title) To: (Title) CurrentDate To: DateOpened The btnAdd event is suppose to calls: ObjectDataSource3.Insert()
Below is my code for both the page and class. Although my class is expecting parameters, I don't know how to get the parameters to the insert function in my class.
I have a set of controls on my page, Start Date, End Date, User, Status
Start and End Date are expected to always contain a value
User and Status I want to also have an 'All' option, where in it would return all results/not filter.
One method I can think of using for this, is the put the queries in a If scenario, where
if(user == All), use linq query B if(user != All), user linq query A
where linq query A contains the filtering on Users, and linq query B does not.
What I have so far is
[Code]....
What I need
[Code]....
where User == ??,
can the control that populates that contain a wild card option as well? ie *, so that if user == Name, it filters on Name, or if user == *, it returns all?
I'm having an issue coming up with an appropriate code design to implement a search page using linq to sql for my DDL. I think the best way for me to explain where I'm at is describing what I've done in the past, before linq. Lets say we have a basic search page with various user input controls for search options... for simplicity, let's say there are two main ways the user can search. 1. a dropdown filled with account numbers. When that drop down is changed and an account number is selected, a gridview needs to be populated with all the records for that account. 2. the second way is a dropdown for choosing what field you want to search, a textbox for entering what you want to search for, and a button to execute that search. In the past, just using straight ado.net
I would handle each of these two search options separately within the events of the dropdown list and the button, respectively. In selectedIndexChanged for 1, and in the buttonClick event for 2, I would construct my sqlCommand etc., ultimately returning a dataset or datatable which I would then bind to the gridview. The logic was separated by the two different event handlers. Now, fast forward to linq to sql and I have a similar page layout, but I am using the linqdatasource selecting event to build my where conditions. Now the difference is *everything*, all the logic, is now in this one event handler, which search option did the user run? Could I somehow craft an IQueryable <T> within each of the input controls event handlers (like the button click, or selectedIndexChanged of the dropdown) and pass that in to the linqdatasource's selecting event? that way my logic stays logically separated...
further, after this initial search is done and results are bound to a gridview, I have several other dropdown lists that appear for search refinement. I need to keep track of that top level query, and each of the refinements... and again, right now it looks like everything is going into the linqdatasource selecting event and I get the feeling it shouldn't be... using the selecting event enables my paging and sorting to work, so I want to use that, but again, it's turning out that I'm putting *everything* there, like all the page's logic, and I'm thinking that is not good? if I could just pass in the actually query, like an IQueryable<T>, and keep my logic separated.
I am working on asp.net 3.5 and in MVC using Linq to SQL classes. In my MVC project i am calling stored procedure using linq to sql that conatin query joining two tables.Below is my code in Partial class
[ Function(Name="dbo.GetUserWiseThreadDetail_SP")] [ResultType(typeof(Thread))] [ResultType(typeof(Reply))] public IMultipleResults GetUserWiseThreadDetail_SP([Parameter(DbType="VarChar(30)")] string userID) { ExecuteResult result = this.ExecuteMethodCall(this, (MethodInfo)(MethodInfo.GetCurrentMethod())), userID); return ((IMultipleResults)(result.ReturnValue)); }
In one of the controller i have made one more class
public class MypostIndexData { public IEnumerable<Thread> Thrds { get; set; } public IEnumerable<Reply> Repls { get; set; } public MypostIndexData(IEnumerable<Thread> thrds,IEnumerable<Reply> repls) { this.Thrds=thrds;this.Repls=repls; } }
finally coding of controller action method
ForumDataContext pmforum = new PMForumDataContext(); public ActionResult MyPosts(string userId) { IEnumerable<Thread>thrds; IEnumerable<Reply>repls; IMultipleResults result = pmforum.GetUserWiseThreadDetail_SP(userId); (this satement doesnot give any result,if i execute stored proc in sql it give the results) thrds = result.GetResult<Thread>(); List<Thread> thrdlist = new List<Thread>(thrds); repls = result.GetResult<Reply>(); List<Reply> replylist; if (repls != null) { replylist = new List<Reply>(repls); } return View(new MypostIndexData(thrds,repls));
I am unable to understand why i am not getting any results?
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...
I've got a Linq datasource hitched up to a Formview control for clients to edit some data. I'm having trouble setting the where parameters withing the control so it show the right set of data. Here's the markup:
[Code]....
Upon running right now, it's completely ignoring the where parameters. What am I missing here?
I have a SP db.sp_GetProfitMatrix , it takes nullable integer parameters, for which I have a default . It refuses me when I try to pass a null value (the two date parameters are nullable in the Linq designer) I get {"Nullable object must have a value."} error. here is my code:
int? nlDt = null; var pms = from p in db.sp_GetProfitMatrix( nlDt.Value, nlDt.Value) select new { p.Volume, p.GrossSales, p.NetSales, p.COGS };
I am trying to figure out how to bind my link results to a datasource so it can manage/update/edit/insert/delete without me having to do manual coding for all of it. Is this possible?What am I doing?I have used the LINQ to Active Directory to access our AD accounts. I need to make this a webpage frontend of basic search and managing functionality. I have it searching now and adding the results to a gridview but edit is not working now. I was looking online and I saw something about being able to bind linq results to a datasource and then using the datasource to manage all the information for me. Resources I am using:
I know how to pass parameters to Reportviewer in LocalReport mode via textboxes on the page where the user enters them and then they click refresh and everything works fine. What I cannot figure out is how to not pass parameters and make the report display everything, which should be the default.
I know I am missing something really obvious on the Report Parameters screen. Does anybody know the secret?
I am currently writing an ASP .NET (Framework 3.5) page that has a Grid View inside it.
One of the columns of this GridView contains only buttons, that if clicked should open a popup dialog.
To open the dialog I wrote the following code on the button's event handler:
[Code]....
Now when I click on any of the buttons the dialog opens just fine, however I need to pass some parameters to the dialog so that they can be displayed inside it. That's why I've encoded a Base 64 string and passed it as an argument of the popup dialog (apparently if I just used the plain string, the dialog would not open because the string contained linefeed characters).
Unfortunately I wasn't able to get the parameter (base 64 string) on the code behind of the popup dialog. How can I do this?
I have added a gridview in my aspx web page. I have added a hyperlink field, to navigate to another page from the gridview. I am getting the error as:
"There was an error rendering the control.
Index(zero based) must be greater than or equal to zero and less than the size of the argument list. "
This is the code i have used:
[Code]....
[Code]....
When i remove the hyperlink, the grid is getting displayed. I know, there is something wrong i have coded in the DataNavigateURLformatstring, but not sure what is wrong.
I want to pass the StudentID,CourseID,ChildImageID with the link as the querystring.
I am trying to pass the value of a dropdownlist to the Update section of a listview. The dropdownlist is bound to one datasource which needs to then pass its selected value to the UpdateCommand sql for another datasource. Here is my code:
According to all I have read my DataNavagateUrlFields string should work but it isn't. The deal is that any one (AssocID) can have multiple AddrID's associated with it. Regardless of which I choose I only get back the first AddrID for that AssocId.
I have a grid view that populates and displays data at btn click event from the following sql statement in one of the SP:
SELECT
reg_code, pc_serial, act_code FROM user_reg WHERE reg_code=@reg_code
I want to pass parameters to the other Stored procedure when the edit button is clicked in order to update the 2 columns in the specific row at the time. I now how to pass parameters in a regular btn click event or function, but in the case of edit btn in grid view I don't know how to capture data from specific row and then pass it to the SP. Here is Stored Procedure to update the columns (every user always has the same reg code, but may have more than one serial number and activation code, I want to let the user update serial number and then based on the serial number generate new activation code in the SP.):
I am writing a plugin to help with a current ERP system we have that I am not allowed to modify the data structure at all. The table I am dealing with has over 100 columns and I am wanting to set my linq object propertychanged event and submitchanges or do I really have list out each property and set it equal to the new one?Below is an example of what I am trying to do:
Like that I have large number of controls on my form. I have dought, if I assigned like this, db.usp_ATI_FetchPatientDetails(iPatientID).ElementAt(0).Last_Name.ToString(); to every control, then I have set of controls like,
My question is that, for each control the Stored Procedure called or not? If it is yes then it is time consuming and I need to use LINQ to DataSet or LINQ to Object rather than to call SP for each control. What is difference between LINQ to DataSet and LINQ to Object?
here is my code for selectiong some records from db table
string strSql = "select * from mtblNBD where SentTo=@SentTo and InternalStatus Is NULL order by DeadLine desc"; SqlCommand com = new SqlCommand(strSql, con); com.Parameters.Add("@SentTo", SqlDbType.NVarChar, 50).Value = (string)Session["uname"];
here I am using parameters for SenTo field but not for NULL so it is ok... or should I use parameters for this field where value is NULL , if yes then how can I use parameter for this
It seems like this would be fairly straight forward. I've got a gridview that loads up using one stored proc, but I've got a searchbox to filter the grid, and when the user enters some criteria I want to use a different proc to return the results. Something tells me I should be doing this with one procedure, but I can't seem to make that work either. When the form loads, my grid is populated. And if I leave my search criteria blank and search anyway, my grid is still populated correctly. But if I enter search creteria, I get diddley squat. What gives? Here is the relevent snippets.