Re: DataSet Question -- Simple Concept? Beginner to 3-Tier asp.net
- From: "RobinS" <RobinS@xxxxxxxxxxxxxxx>
- Date: Mon, 27 Nov 2006 21:23:03 -0800
Answers below.
Robin S.
------------------------------------------------
"Rangy" <davidwank@xxxxxxxxx> wrote in message
news:1164674888.691814.151380@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Hi,
I am trying to be a thorough coder and create an app in layers. I can
do it using the sqldatasource but I really want to try creating the app
with tiers....thus....
If I use VS2005 to create a typed data set, I see that I can allow VS
to automatically generate INSERT, UPDATE, DELTE, statements for the
dataset.
1. Since the INSERT, etc. commands are directed at the database, why
would you want to write custom INSERT, etc,. commands for the dataset?
I though that that was the whole point of using stored procedures? If
I want to use Northwind and return all products that cost over $1, I'd
create a stored procedure ReturnProductsOverOneDollar. So if you use a
stored procedure, would you put it in the DAL, or as a buisness rule in
the business layer? Ideally I'd have a datlist or similar control, and
then call the ReturnProductsOverOneDollar sp to populate it.
You might have a different insert statement?
I'm using stored procedures in my Data Access Layer to write the info
from my Business layer. I'm not using strongly-typed datasets, I
have business objects. I have a class defined for Products. In that
class, I have methods for populating my class, saving the changes
to the class, etc. When I put them on a form, I set up a data
source pointing at the object (the class) instead of the
database, and then used that to bind my fields to the controls
on the form.
When the user hits <Save> (or whatever) on the main form, it
runs the Save method of the class, which passes the pertinent
info to the DAL.
2. I would then this example, want to allow the user to add a product
using another stored procedure, AddProducts. AddProducts would
obviously have an INSERT statement in it. Does this INSERT statement
have to be defined in the DAL? Clearly I have to code as many stored
procedures as I need, but does this mean that I have to write an
INSERT, UPDATE, and DELETE statement in the DAL for every possible
occurrence?
For me, this is in the DAL. I call it from the Product class,
providing the values of all the parameters. I have Insert,
Update, and Delete statements for each class. They are in
*one* stored procedure, and I pass in the action I want to take. I
also pass in the *name* of the stored procedure from the Product
class to the DAL. This is especially useful when reading a list
of products from my ProductList class, because I can ask for all
products, or all products with a filter on a specified field -- I
have a stored proc for each of those.
3. If I use northwind for example, and make a TableAdapter based on the
products table (call it ProductTableAdapter), I see that it generates a
Fill() method and a Get() method which returns data based on my SELECT
statement. If you let the Table Adapter Wizard automatically generate
the INSERT, UPDATE, etc. statements, why don't you see them as methods
in the TableAdapter.
Speaking in VB, once you have created a strongly typed data set
(using the dataset designer) and it creates all that code for you,
including the adapter stuff, I found that you have to include it
in your program as an Imports, like
'this has a namespace in the designer code;
' import it into your code so you can access
' the table adapters
Imports myProject.MyDataSetTableAdapters
and then you can access it like this:
Dim myAdapter As MyDataSetTableAdapter _
= New MyDataSetTableAdapter
myAdapter.Update(myDataSet.myTable)
Thank you so much in advance for your help.
-David
You're welcome. Hope this helps.
Robin S.
.
- References:
- Prev by Date: DataSet Question -- Simple Concept? Beginner to 3-Tier asp.net
- Next by Date: Re: reuse connection object with diff username passwor ...
- Previous by thread: DataSet Question -- Simple Concept? Beginner to 3-Tier asp.net
- Next by thread: Problem adding aggregate datacolumn to datatable
- Index(es):
Relevant Pages
|