Hi, I'm creating a typed dataset based off of a SQL Server 2005 DB. There are
2 fields from one table that I'd like to bind to on an ASP.NET dropdownlist.
Since I can't specify two fields in the "Datatextfield" proprety of the
control, I'm trying to create an expression-based column. One thing that
compilicates things a bit is that one of the fields is actually a number
which points to a friendly display value in a different table. There's a
foreign-key relationship that the dataset designer (and SQL Server 2005) are
both aware of. So I can modify the query that my method uses to include the
proper text value from the other table. However, when I try to, in the query,
create a single field that combines that text field and the other field (a
datetime field), I get an error at runtime complaining of a problem
converting between a datetime and a character string:

"Conversion failed when converting datetime from character string"

Line 1329: this.Adapter.SelectCommand.Parameters[0].Value =
((int)(OwnerOfShoes));
Line 1330: DataSet1.ShoeInstancesDataTable dataTable = new
DataSet1.ShoeInstancesDataTable();
Line 1331: this.Adapter.Fill(dataTable);
Line 1332: return dataTable;
Line 1333: }

Should I be trying to architect a solution to this in the SQL query? I'd
really like to try to modify the datatable after the SQL query is complete,
but it gets a bit more complicated because one of the values needs to be
looked up in a related table. I'm not sure where I would add the code. Would
I use a partial class to add a new method?

Any thoughts on this? Any suggestions for the best way to do this?

Thanks.

-Ben

Re: Typed Dataset: Add expression-based column? by Sheng

Sheng
Mon Jul 30 16:22:45 CDT 2007

You can create a view in the database that join the two tables and use it in
a new \table adapter.

--
Sheng Jiang
Microsoft MVP in VC++
"benji" <benji@discussions.microsoft.com> wrote in message
news:4ABDF822-9CF6-4886-8BE5-6C3C7FDEEB20@microsoft.com...
> Hi, I'm creating a typed dataset based off of a SQL Server 2005 DB. There
are
> 2 fields from one table that I'd like to bind to on an ASP.NET
dropdownlist.
> Since I can't specify two fields in the "Datatextfield" proprety of the
> control, I'm trying to create an expression-based column. One thing that
> compilicates things a bit is that one of the fields is actually a number
> which points to a friendly display value in a different table. There's a
> foreign-key relationship that the dataset designer (and SQL Server 2005)
are
> both aware of. So I can modify the query that my method uses to include
the
> proper text value from the other table. However, when I try to, in the
query,
> create a single field that combines that text field and the other field (a
> datetime field), I get an error at runtime complaining of a problem
> converting between a datetime and a character string:
>
> "Conversion failed when converting datetime from character string"
>
> Line 1329: this.Adapter.SelectCommand.Parameters[0].Value =
> ((int)(OwnerOfShoes));
> Line 1330: DataSet1.ShoeInstancesDataTable dataTable = new
> DataSet1.ShoeInstancesDataTable();
> Line 1331: this.Adapter.Fill(dataTable);
> Line 1332: return dataTable;
> Line 1333: }
>
> Should I be trying to architect a solution to this in the SQL query? I'd
> really like to try to modify the datatable after the SQL query is
complete,
> but it gets a bit more complicated because one of the values needs to be
> looked up in a related table. I'm not sure where I would add the code.
Would
> I use a partial class to add a new method?
>
> Any thoughts on this? Any suggestions for the best way to do this?
>
> Thanks.
>
> -Ben



Re: Typed Dataset: Add expression-based column? by Benji

Benji
Mon Jul 30 18:32:02 CDT 2007

Hi Sheng,

Why this over the SQL select query that merges the two fields? Also, do you
have any info on how I would go the other route and add an expression based
column to the datatable?

Thanks...

-Ben

"Sheng Jiang[MVP]" wrote:

> You can create a view in the database that join the two tables and use it in
> a new \table adapter.
>
> --
> Sheng Jiang
> Microsoft MVP in VC++
> "benji" <benji@discussions.microsoft.com> wrote in message
> news:4ABDF822-9CF6-4886-8BE5-6C3C7FDEEB20@microsoft.com...
> > Hi, I'm creating a typed dataset based off of a SQL Server 2005 DB. There
> are
> > 2 fields from one table that I'd like to bind to on an ASP.NET
> dropdownlist.
> > Since I can't specify two fields in the "Datatextfield" proprety of the
> > control, I'm trying to create an expression-based column. One thing that
> > compilicates things a bit is that one of the fields is actually a number
> > which points to a friendly display value in a different table. There's a
> > foreign-key relationship that the dataset designer (and SQL Server 2005)
> are
> > both aware of. So I can modify the query that my method uses to include
> the
> > proper text value from the other table. However, when I try to, in the
> query,
> > create a single field that combines that text field and the other field (a
> > datetime field), I get an error at runtime complaining of a problem
> > converting between a datetime and a character string:
> >
> > "Conversion failed when converting datetime from character string"
> >
> > Line 1329: this.Adapter.SelectCommand.Parameters[0].Value =
> > ((int)(OwnerOfShoes));
> > Line 1330: DataSet1.ShoeInstancesDataTable dataTable = new
> > DataSet1.ShoeInstancesDataTable();
> > Line 1331: this.Adapter.Fill(dataTable);
> > Line 1332: return dataTable;
> > Line 1333: }
> >
> > Should I be trying to architect a solution to this in the SQL query? I'd
> > really like to try to modify the datatable after the SQL query is
> complete,
> > but it gets a bit more complicated because one of the values needs to be
> > looked up in a related table. I'm not sure where I would add the code.
> Would
> > I use a partial class to add a new method?
> >
> > Any thoughts on this? Any suggestions for the best way to do this?
> >
> > Thanks.
> >
> > -Ben
>
>
>

Re: Typed Dataset: Add expression-based column? by Sheng

Sheng
Mon Jul 30 20:06:09 CDT 2007

because views get compiled in the database and will run faster than
hardcoded sql.
If you are building a multi-tier application, you can also create a business
object and bind your list column to a calculated property.

Sheng Jiang
Microsoft MVP in VC++


osoft MVP in VC++
"Benji" <Benji@discussions.microsoft.com> wrote in message
news:7A7FF251-388E-49FE-85F0-34D385EFF208@microsoft.com...
> Hi Sheng,
>
> Why this over the SQL select query that merges the two fields? Also, do
you
> have any info on how I would go the other route and add an expression
based
> column to the datatable?
>
> Thanks...
>
> -Ben
>
> "Sheng Jiang[MVP]" wrote:
>
> > You can create a view in the database that join the two tables and use
it in
> > a new \table adapter.
> >
> > --
> > Sheng Jiang
> > Microsoft MVP in VC++
> > "benji" <benji@discussions.microsoft.com> wrote in message
> > news:4ABDF822-9CF6-4886-8BE5-6C3C7FDEEB20@microsoft.com...
> > > Hi, I'm creating a typed dataset based off of a SQL Server 2005 DB.
There
> > are
> > > 2 fields from one table that I'd like to bind to on an ASP.NET
> > dropdownlist.
> > > Since I can't specify two fields in the "Datatextfield" proprety of
the
> > > control, I'm trying to create an expression-based column. One thing
that
> > > compilicates things a bit is that one of the fields is actually a
number
> > > which points to a friendly display value in a different table. There's
a
> > > foreign-key relationship that the dataset designer (and SQL Server
2005)
> > are
> > > both aware of. So I can modify the query that my method uses to
include
> > the
> > > proper text value from the other table. However, when I try to, in the
> > query,
> > > create a single field that combines that text field and the other
field (a
> > > datetime field), I get an error at runtime complaining of a problem
> > > converting between a datetime and a character string:
> > >
> > > "Conversion failed when converting datetime from character string"
> > >
> > > Line 1329: this.Adapter.SelectCommand.Parameters[0].Value =
> > > ((int)(OwnerOfShoes));
> > > Line 1330: DataSet1.ShoeInstancesDataTable dataTable = new
> > > DataSet1.ShoeInstancesDataTable();
> > > Line 1331: this.Adapter.Fill(dataTable);
> > > Line 1332: return dataTable;
> > > Line 1333: }
> > >
> > > Should I be trying to architect a solution to this in the SQL query?
I'd
> > > really like to try to modify the datatable after the SQL query is
> > complete,
> > > but it gets a bit more complicated because one of the values needs to
be
> > > looked up in a related table. I'm not sure where I would add the code.
> > Would
> > > I use a partial class to add a new method?
> > >
> > > Any thoughts on this? Any suggestions for the best way to do this?
> > >
> > > Thanks.
> > >
> > > -Ben
> >
> >
> >



Re: Typed Dataset: Add expression-based column? by benji

benji
Mon Jul 30 21:06:02 CDT 2007

Do you have a sense regarding my inquiry of adding an expression-based row?

Could you provide more clarity regarding how I would combine the datetime
field and the text field into one without incurring the error I pasted?

"Sheng Jiang[MVP]" wrote:

> because views get compiled in the database and will run faster than
> hardcoded sql.
> If you are building a multi-tier application, you can also create a business
> object and bind your list column to a calculated property.
>
> Sheng Jiang
> Microsoft MVP in VC++
>
>
> osoft MVP in VC++
> "Benji" <Benji@discussions.microsoft.com> wrote in message
> news:7A7FF251-388E-49FE-85F0-34D385EFF208@microsoft.com...
> > Hi Sheng,
> >
> > Why this over the SQL select query that merges the two fields? Also, do
> you
> > have any info on how I would go the other route and add an expression
> based
> > column to the datatable?
> >
> > Thanks...
> >
> > -Ben
> >
> > "Sheng Jiang[MVP]" wrote:
> >
> > > You can create a view in the database that join the two tables and use
> it in
> > > a new \table adapter.
> > >
> > > --
> > > Sheng Jiang
> > > Microsoft MVP in VC++
> > > "benji" <benji@discussions.microsoft.com> wrote in message
> > > news:4ABDF822-9CF6-4886-8BE5-6C3C7FDEEB20@microsoft.com...
> > > > Hi, I'm creating a typed dataset based off of a SQL Server 2005 DB.
> There
> > > are
> > > > 2 fields from one table that I'd like to bind to on an ASP.NET
> > > dropdownlist.
> > > > Since I can't specify two fields in the "Datatextfield" proprety of
> the
> > > > control, I'm trying to create an expression-based column. One thing
> that
> > > > compilicates things a bit is that one of the fields is actually a
> number
> > > > which points to a friendly display value in a different table. There's
> a
> > > > foreign-key relationship that the dataset designer (and SQL Server
> 2005)
> > > are
> > > > both aware of. So I can modify the query that my method uses to
> include
> > > the
> > > > proper text value from the other table. However, when I try to, in the
> > > query,
> > > > create a single field that combines that text field and the other
> field (a
> > > > datetime field), I get an error at runtime complaining of a problem
> > > > converting between a datetime and a character string:
> > > >
> > > > "Conversion failed when converting datetime from character string"
> > > >
> > > > Line 1329: this.Adapter.SelectCommand.Parameters[0].Value =
> > > > ((int)(OwnerOfShoes));
> > > > Line 1330: DataSet1.ShoeInstancesDataTable dataTable = new
> > > > DataSet1.ShoeInstancesDataTable();
> > > > Line 1331: this.Adapter.Fill(dataTable);
> > > > Line 1332: return dataTable;
> > > > Line 1333: }
> > > >
> > > > Should I be trying to architect a solution to this in the SQL query?
> I'd
> > > > really like to try to modify the datatable after the SQL query is
> > > complete,
> > > > but it gets a bit more complicated because one of the values needs to
> be
> > > > looked up in a related table. I'm not sure where I would add the code.
> > > Would
> > > > I use a partial class to add a new method?
> > > >
> > > > Any thoughts on this? Any suggestions for the best way to do this?
> > > >
> > > > Thanks.
> > > >
> > > > -Ben
> > >
> > >
> > >
>
>
>

Re: Typed Dataset: Add expression-based column? by Sheng

Sheng
Tue Jul 31 16:02:58 CDT 2007

You may need the Convert function
see
http://msdn2.microsoft.com/en-us/library/system.data.datacolumn.expression(vs.71).aspx
--
Sheng Jiang
Microsoft MVP in VC++
"benji" <benji@discussions.microsoft.com> wrote in message
news:ADBE7E6D-9C10-4572-B6E9-F2AB22B308E5@microsoft.com...
> Do you have a sense regarding my inquiry of adding an expression-based
row?
>
> Could you provide more clarity regarding how I would combine the datetime
> field and the text field into one without incurring the error I pasted?
>
> "Sheng Jiang[MVP]" wrote:
>
> > because views get compiled in the database and will run faster than
> > hardcoded sql.
> > If you are building a multi-tier application, you can also create a
business
> > object and bind your list column to a calculated property.
> >
> > Sheng Jiang
> > Microsoft MVP in VC++
> >
> >
> > osoft MVP in VC++
> > "Benji" <Benji@discussions.microsoft.com> wrote in message
> > news:7A7FF251-388E-49FE-85F0-34D385EFF208@microsoft.com...
> > > Hi Sheng,
> > >
> > > Why this over the SQL select query that merges the two fields? Also,
do
> > you
> > > have any info on how I would go the other route and add an expression
> > based
> > > column to the datatable?
> > >
> > > Thanks...
> > >
> > > -Ben
> > >
> > > "Sheng Jiang[MVP]" wrote:
> > >
> > > > You can create a view in the database that join the two tables and
use
> > it in
> > > > a new \table adapter.
> > > >
> > > > --
> > > > Sheng Jiang
> > > > Microsoft MVP in VC++
> > > > "benji" <benji@discussions.microsoft.com> wrote in message
> > > > news:4ABDF822-9CF6-4886-8BE5-6C3C7FDEEB20@microsoft.com...
> > > > > Hi, I'm creating a typed dataset based off of a SQL Server 2005
DB.
> > There
> > > > are
> > > > > 2 fields from one table that I'd like to bind to on an ASP.NET
> > > > dropdownlist.
> > > > > Since I can't specify two fields in the "Datatextfield" proprety
of
> > the
> > > > > control, I'm trying to create an expression-based column. One
thing
> > that
> > > > > compilicates things a bit is that one of the fields is actually a
> > number
> > > > > which points to a friendly display value in a different table.
There's
> > a
> > > > > foreign-key relationship that the dataset designer (and SQL Server
> > 2005)
> > > > are
> > > > > both aware of. So I can modify the query that my method uses to
> > include
> > > > the
> > > > > proper text value from the other table. However, when I try to, in
the
> > > > query,
> > > > > create a single field that combines that text field and the other
> > field (a
> > > > > datetime field), I get an error at runtime complaining of a
problem
> > > > > converting between a datetime and a character string:
> > > > >
> > > > > "Conversion failed when converting datetime from character string"
> > > > >
> > > > > Line 1329:
this.Adapter.SelectCommand.Parameters[0].Value =
> > > > > ((int)(OwnerOfShoes));
> > > > > Line 1330: DataSet1.ShoeInstancesDataTable dataTable =
new
> > > > > DataSet1.ShoeInstancesDataTable();
> > > > > Line 1331: this.Adapter.Fill(dataTable);
> > > > > Line 1332: return dataTable;
> > > > > Line 1333: }
> > > > >
> > > > > Should I be trying to architect a solution to this in the SQL
query?
> > I'd
> > > > > really like to try to modify the datatable after the SQL query is
> > > > complete,
> > > > > but it gets a bit more complicated because one of the values needs
to
> > be
> > > > > looked up in a related table. I'm not sure where I would add the
code.
> > > > Would
> > > > > I use a partial class to add a new method?
> > > > >
> > > > > Any thoughts on this? Any suggestions for the best way to do this?
> > > > >
> > > > > Thanks.
> > > > >
> > > > > -Ben
> > > >
> > > >
> > > >
> >
> >
> >