Solved

Asp.Net Set New Session Varilable not Working..

Posted on 2012-04-04
10
272 Views
Last Modified: 2012-08-14
I have the following code in my HEAD section of my .net page.

I am a total newbie on .net but have been in php for a while so I understand variables and a little code.


<%

Session["NewID"] = @DescID;
SqlCommand("@DescID = SCOPE_IDENTITY()");

%>

I'm using an INSERT query to insert the record and carry the new session variable to the next page to post it there and insert it into the database.

I'm getting this error:

Compiler Error Message: CS0103: The name 'DescID' does not exist in the current context

Also, when I get this part working, how do you display the session variable on the next page to retrieve it?  Thanks everyone!
0
Comment
Question by:palmtreeinfotech
  • 5
  • 5
10 Comments
 
LVL 40

Expert Comment

by:Kyle Abrahams
ID: 37807611
If @DescID is an output paramater see the following link:

http://forums.asp.net/t/1197815.aspx/1


you could also do:

Session["NewID"] = cmd.ExecuteScalar();  // change @DescID  = Scope_identity to just select Scope_Identity();


When outputting on a different page:

if (Session["NewID"] != null)
   myTextBox.Text = Session["NewID"].ToString;
0
 

Author Comment

by:palmtreeinfotech
ID: 37807710
Hey cool thank you ged325.  I'm getting this error now in the asp.net page browser:

Compiler Error Message: CS0103: The name 'cmd' does not exist in the current context

I am assuming I'm getting this because cmd. is not specified in the code??
0
 
LVL 40

Expert Comment

by:Kyle Abrahams
ID: 37807859
Yeah . . . sorry

SqlConnection conn = New SqlConnection(ConfigurationManager.ConnectionStrings["connString"].Tostring());  // or use your existing connection code.
SqlCommand cmd = new SqlCommand(conn);
cmd.CommandText = "MyStoredProc";  // last line in proc is select scope_identity()
cmd.CommandType = CommandType.StoredProcedure;

//USE TRY/CATCH FOR PRODUCTION, this is for display purposes only.
conn.open();
Session["NewID"] =cmd.ExecuteScalar();
conn.close();


if you're not using a stored proc then post your relevant code and  I'll take a look.
0
ScreenConnect 6.0 Free Trial

Check out the updates in one game-changing release, ScreenConnect 6.0, based on partner feedback. New features include a redesigned UI that improves session organization and overall user experience. See the enhancements for yourself!

 

Author Comment

by:palmtreeinfotech
ID: 37807898
Hey no problem.  Like I said, I'm new with .net code but know Sql pretty well.  Here is my code before your last comment:

I embedded it in a code snippet.

I am using Dreamweaver Cs3 because Cs5 doesn't support .net stuff.  I have Visual Studio but don't know how to manuever in there yet and setup dynamic drop-downs, etc.
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %>
<%@ Register TagPrefix="MM" Namespace="DreamweaverCtrl<wbr ></wbr>s" Assembly="DreamweaverCtrls<wbr ></wbr>,version=1<wbr ></wbr>.0.0.0,pub<wbr ></wbr>licKeyToke<wbr ></wbr>n=836f606e<wbr ></wbr>de05d46a,c<wbr ></wbr>ulture=neu<wbr ></wbr>tral" %>


<%


Session["NewID"] = cmd.ExecuteScalar(); 
SqlCommand("SELECT SCOPE_IDENTITY()");

%>

<MM:Insert runat="server"


CommandText='<%# "INSERT INTO dbo.tblReports_Descriptive<wbr ></wbr> (Report_Number, Report_Name, Link_Name, Report_Description, URL, Default_Description) VALUES (?, ?, ?, ?, ?, ?)" %>'
ConnectionString='<%# System.Configuration.Confi<wbr ></wbr>gurationSe<wbr ></wbr>ttings.App<wbr ></wbr>Settings["<wbr ></wbr>MM_CONNECT<wbr ></wbr>ION_STRING<wbr ></wbr>_connectio<wbr ></wbr>n_01"] %>'
DatabaseType='<%# System.Configuration.Confi<wbr ></wbr>gurationSe<wbr ></wbr>ttings.App<wbr ></wbr>Settings["<wbr ></wbr>MM_CONNECT<wbr ></wbr>ION_DATABA<wbr ></wbr>SETYPE_con<wbr ></wbr>nection_01<wbr ></wbr>"] %>'
Expression='<%# Request.Form["MM_insert"] == "form1" %>'
CreateDataSet="false"
SuccessURL='<%# "add2.aspx" %>'
FailureURL='<%# "add_fail.aspx" %>'

>
  <Parameters>
    <Parameter Name="@Report_Number" Value='<%# ((Request.Form["report_num<wbr ></wbr>"] != null) && (Request.Form["report_num"<wbr ></wbr>].Length > 0)) ? Request.Form["report_num"]<wbr ></wbr> : "" %>' Type="WChar" />
    <Parameter Name="@Report_Name" Value='<%# ((Request.Form["report_nam<wbr ></wbr>e"] != null) && (Request.Form["report_name<wbr ></wbr>"].Length > 0)) ? Request.Form["report_name"<wbr ></wbr>] : "" %>' Type="WChar" />
    <Parameter Name="@Link_Name" Value='<%# ((Request.Form["new_link_n<wbr ></wbr>ame"] != null) && (Request.Form["new_link_na<wbr ></wbr>me"].Lengt<wbr ></wbr>h > 0)) ? Request.Form["new_link_nam<wbr ></wbr>e"] : "" %>' Type="WChar" />
    <Parameter Name="@Report_Description"<wbr ></wbr> Value='<%# ((Request.Form["report_des<wbr ></wbr>c"] != null) && (Request.Form["report_desc<wbr ></wbr>"].Length > 0)) ? Request.Form["report_desc"<wbr ></wbr>] : "" %>' Type="WChar" />
    <Parameter Name="@URL" Value='<%# ((Request.Form["report_url<wbr ></wbr>"] != null) && (Request.Form["report_url"<wbr ></wbr>].Length > 0)) ? Request.Form["report_url"]<wbr ></wbr> : "" %>' Type="WChar" />
    <Parameter Name="@Default_Description<wbr ></wbr>" Value='<%# ((Request.Form["default_re<wbr ></wbr>port"] != null) && (Request.Form["default_rep<wbr ></wbr>ort"].Leng<wbr ></wbr>th > 0)) ? Request.Form["default_repo<wbr ></wbr>rt"] : "" %>' Type="WChar" />
  </Parameters>


</MM:Insert>
<MM:PageBind runat="server" PostBackBind="true" />





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtm<wbr ></wbr>l1/DTD/xht<wbr ></wbr>ml1-transi<wbr ></wbr>tional.dtd<wbr ></wbr>">
<html xmlns="http://www.w3.org/1<wbr ></wbr>999/xhtml"<wbr ></wbr>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Add Report - Step 1 of 2</title>
</head>
<body>
<form runat='server' id="form1" name='form1' method='POST' action="">
  <table width="100%" border="1" cellpadding="5" cellspacing="5">
    <tr>
      <td width="28%">Report Name:      </td>
      <td width="72%"><label>
        <textarea name="report_name" id="report_name" cols="100" rows="5"></textarea>
      </label></td>
    </tr>
    <tr>
      <td>Report Description:</td>
      <td><textarea name="report_desc" id="report_desc" cols="100" rows="5"></textarea></td>
    </tr>
    <tr>
      <td>New Link Name:</td>
      <td><input name="new_link_name" type="text" id="new_link_name" size="100" /></td>
    </tr>
    <tr>
      <td>Actual URL Link:</td>
      <td><textarea name="report_url" id="report_url" cols="100" rows="5"></textarea></td>
    </tr>
    <tr>
      <td>Report Number:</td>
      <td><label>
      <input type="text" name="report_num" id="report_num" />
      </label></td>
    </tr>
    <tr>
      <td>Default:</td>
      <td><label>
        <select name="default_report" id="default_report">
          <option value="Y" selected="selected">Y</opt<wbr ></wbr>ion>
          <option value="N">N</option>
        </select>
      </label></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><label>
        <input type="submit" name="button" id="button" value="Go to Step 2 of 2" />
      </label></td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1" />
</form>
</body>
</html>

Open in new window

0
 
LVL 40

Expert Comment

by:Kyle Abrahams
ID: 37808088
Not that familiar with dream weaver:

but try:

<%

Session["NewID"] = SqlCommand("SELECT SCOPE_IDENTITY()").ExecuteScalar();

%>

I would also move it below the MM:Insert . . . that's what you're trying to get the ID from correct?
0
 

Author Comment

by:palmtreeinfotech
ID: 37808232
Hey thank you.  I'm getting an error now of "the server tag is not well formed" on line 6.  I know it's got to be something simple and yes I put it inside the MM:Insert tag as I want the identity scope of the last inserted record.  What do you think?

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %>
<%@ Register TagPrefix="MM" Namespace="DreamweaverCtrls" Assembly="DreamweaverCtrls,version=1.0.0.0,publicKeyToken=836f606ede05d46a,culture=neutral" %>



<MM:Insert runat="server"



Session["NewID"] = SqlCommand("SELECT SCOPE_IDENTITY()").ExecuteScalar();
CommandText='<%# "INSERT INTO dbo.tblReports_Descriptive (Report_Number, Report_Name, Link_Name, Report_Description, URL, Default_Description) VALUES (?, ?, ?, ?, ?, ?)" %>'
ConnectionString='<%# System.Configuration.ConfigurationSettings.AppSettings["MM_CONNECTION_STRING_connection_01"] %>'
DatabaseType='<%# System.Configuration.ConfigurationSettings.AppSettings["MM_CONNECTION_DATABASETYPE_connection_01"] %>'
Expression='<%# Request.Form["MM_insert"] == "form1" %>'
CreateDataSet="false"
SuccessURL='<%# "add2.aspx" %>'
FailureURL='<%# "add_fail.aspx" %>'


>
  <Parameters>
    <Parameter Name="@Report_Number" Value='<%# ((Request.Form["report_num"] != null) && (Request.Form["report_num"].Length > 0)) ? Request.Form["report_num"] : "" %>' Type="WChar" />
    <Parameter Name="@Report_Name" Value='<%# ((Request.Form["report_name"] != null) && (Request.Form["report_name"].Length > 0)) ? Request.Form["report_name"] : "" %>' Type="WChar" />
    <Parameter Name="@Link_Name" Value='<%# ((Request.Form["new_link_name"] != null) && (Request.Form["new_link_name"].Length > 0)) ? Request.Form["new_link_name"] : "" %>' Type="WChar" />
    <Parameter Name="@Report_Description" Value='<%# ((Request.Form["report_desc"] != null) && (Request.Form["report_desc"].Length > 0)) ? Request.Form["report_desc"] : "" %>' Type="WChar" />
    <Parameter Name="@URL" Value='<%# ((Request.Form["report_url"] != null) && (Request.Form["report_url"].Length > 0)) ? Request.Form["report_url"] : "" %>' Type="WChar" />
    <Parameter Name="@Default_Description" Value='<%# ((Request.Form["default_report"] != null) && (Request.Form["default_report"].Length > 0)) ? Request.Form["default_report"] : "" %>' Type="WChar" />
  </Parameters>


</MM:Insert>
<MM:PageBind runat="server" PostBackBind="true" />





<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Add Report - Step 1 of 2</title>
</head>
<body>
<form runat='server' id="form1" name='form1' method='POST' action="">
  <table width="100%" border="1" cellpadding="5" cellspacing="5">
    <tr>
      <td width="28%">Report Name:      </td>
      <td width="72%"><label>
        <textarea name="report_name" id="report_name" cols="100" rows="5"></textarea>
      </label></td>
    </tr>
    <tr>
      <td>Report Description:</td>
      <td><textarea name="report_desc" id="report_desc" cols="100" rows="5"></textarea></td>
    </tr>
    <tr>
      <td>New Link Name:</td>
      <td><input name="new_link_name" type="text" id="new_link_name" size="100" /></td>
    </tr>
    <tr>
      <td>Actual URL Link:</td>
      <td><textarea name="report_url" id="report_url" cols="100" rows="5"></textarea></td>
    </tr>
    <tr>
      <td>Report Number:</td>
      <td><label>
      <input type="text" name="report_num" id="report_num" />
      </label></td>
    </tr>
    <tr>
      <td>Default:</td>
      <td><label>
        <select name="default_report" id="default_report">
          <option value="Y" selected="selected">Y</option>
          <option value="N">N</option>
        </select>
      </label></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><label>
        <input type="submit" name="button" id="button" value="Go to Step 2 of 2" />
      </label></td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1" />
</form>
</body>
</html>

Open in new window

0
 
LVL 40

Expert Comment

by:Kyle Abrahams
ID: 37808542
The select scope_identity needs to go after the insert but before the transfer of the page.  Are there events in dreamweaver?  You may want to request attention to get this re-zoned in there.  I could walk you through how to do it in Visual studios but this is different than anything I've seen before.
0
 

Author Comment

by:palmtreeinfotech
ID: 37808596
Yeah I shouldn't be using Dreamweaver for this.  But in VS I made a web form page and pulled over the dynamic dropdown and looked everywhere for the properties of how to tie it to a database and couldn't figure it out. :)

I'm getting the same error even with it moved.  It's weird code I guess using Dreamweaver to do it.
0
 
LVL 40

Accepted Solution

by:
Kyle Abrahams earned 500 total points
ID: 37811671
Here's a sample of how to populate a drop down in ASP.NEt using visual studios.

http://www.dbtutorials.com/advanced/populatingdropdown-csharp.aspx

Essentially every page is made up of 2 files.  The front end and the back end.  The front end is the layout of the controls, the back end is the hidden part that effects the controls.

Try it in VS, let me know if you have any issues.  

If you need to convert code to vb you can use the following link:
http://www.google.com/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=1&ved=0CDgQFjAA&url=http%3A%2F%2Fwww.developerfusion.com%2Ftools%2Fconvert%2Fcsharp-to-vb%2F&ei=-aJ9T8jtGcvjrAej89HnDA&usg=AFQjCNFM321pCrxs_o-P69sgwPbmfGp0Rw&sig2=gXEOjjHk7RCI04Sa9ZsUmQ
0
 

Author Closing Comment

by:palmtreeinfotech
ID: 37813138
Thank you so much I appreciate it.  I have been playing with VS a little bit and it's kind of coming together.  Just have to figure out how to insert a record, etc. and I will switch it over.  It's not as bad as I thought it would be :)
0

Featured Post

Does Powershell have you tied up in knots?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A quick way to get a menu to work on our website, is using the Menu control and assign it to a web.sitemap using SiteMapDataSource. Example of web.sitemap file: (CODE) Sample code to add to the page menu: (CODE) Running the application, we wi…
Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question