Get Session variable inside a method - c#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;
using MySql.Data;
using System.Web.Security;
using System.Data;
using System.IO;
using SurelyKnown.Core;
using System.Configuration;
using System.Collections;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Xml;
using System.Windows.Forms;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[System.Web.Services.WebMethod(EnableSession = true)]
public static string[] GetCompletionList(string prefixText, int count, string contextKey)
{
int newOrgID = Convert.ToInt32(Session["uOrgID"].ToString());
The error is on the last line
CS0120: An object reference is required for the non-static field, method, or property 'System.Web.UI.Page.Session.get'
WHat should I do to get the session value inside the method.

Use HttpContext.Current.Session
int newOrgID=0;
if(HttpContext.Current.Session["uOrgID"]!=null)
{
int.TryParse(HttpContext.Current.Session["uOrgID"].ToString(),out newOrgID);
}

check for null before using it, something like this:
if(Session["uOrgID"] != null)
{
int newOrgID = Convert.ToInt32(Session["uOrgID"].ToString());
}
You should also read this article to really understand how to access Session state from web services (including web and page methods): Using ASP.NET Session State in a Web Service

Related

How To Get SqlConnection Instantiated?

I am following a tutorial to make an ASP.NET web app and came to the part of establishing a connection to my SQL database item I added withing VisualStudio via Add>New Item command when right-clicking on my project name in Solution Explorer.
However, after putting the appropriate namespaces, VS is not recognizing the SQLConnection I'm trying to instantiate.
I keep getting the error: "the modifier 'new' is not valid for this item" among others.
I already tried removing the "#" symbol, already tried putting the path in a string, but now VS is not even recognizing a simple string instantiation!
Here is code version 1:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
namespace AdressBook
{
public partial class WebForm1 : System.Web.UI.Page
SqlConnection conn = new SqlConnection("Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename|DataDirectory\AdressBookDatabase.mdf;Integrated Security=True");
Here is code version 2:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
namespace AdressBook
{
public partial class WebForm1 : System.Web.UI.Page
string datapath = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename|DataDirectory\AdressBookDatabase.mdf;Integrated Security=True"
SqlConnection conn = new SqlConnection(datapath);
I expect there to be no red/green underlines and be able to connect to my database when a button is clicked. What is wrong?
Maybe this is a copy/paste error, but you're missing the curly brace at the start of the class:
namespace AdressBook
{
public partial class WebForm1 : System.Web.UI.Page
{ //<---- opening curly brace required!
string datapath = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename|DataDirectory\AdressBookDatabase.mdf;Integrated Security=True"
I have tried the following and it works for my VS2017.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Server=(localdb)\v11.0;Integrated Security=true;AttachDbFileName=C:\\Users\\MySelf\\Documents\\Visual Studio 2017\\Projects\\TestSQL\\TestSQL\\App_Data\\Database.mdf;");
}
}

AudioVideoPlayback doesn`t work at all. How to fix it?

I am new to C# and testing Microsoft.DirectX.AudioVideoPlayback library function.(using VS2019)
VS said there are no error, but nothing happened when I compiled it.
I have tested below code line by line. and found that Init() function does not work at all. I have tested other paths such as
#"C:\Users\name\Videos\sample.mp4"
"C:\Users\name\Videos\sample.mp4"
"C:\Users\name\Videos\sample.mp4"
but all of them does not work at all too.
How to fix the code and why it did`t work properly?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.DirectX.AudioVideoPlayback;
using System.IO;
namespace hello
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Init();
}
public void Init()
{
Video v = Video.FromFile(#"C:\Users\name\Videos\sample.mp4");
v.Owner = this;
v.Size = new Size(1920, 1080);
v.Play();
}
}
}
This might be too simple question, but cannot gain any solution from other answers in this site.

ApplicationContext.Current is coming null

I found same question in stack over flow as here and tried same think but still I am receiving ApplicationContext.Current as null.
I am making the web service where I need to pull out a couple of pieces of data from an Umbraco database. I don't need any of the Umbraco views or any of that stuff. I'm new to the Umbraco Core libraries.
What I did was get a below reference to my new web service project
umbraco.dll
Umbraco.Core.dll
umbraco.DataLayer.dll
umbraco.editorControls.dll
umbraco.MacroEngines.dll
umbraco.providers.dll
Umbraco.Web.UI.dll
umbraco.XmlSerializers.dll
UmbracoExamine.dll
And the below class code where I am receiving ApplicationContext.Current as null
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Umbraco.Web.Mvc;
using umbraco.MacroEngines;
using Umbraco.Web;
using Umbraco.Web.WebApi;
using umbraco.NodeFactory;
using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.Services;
using umbraco.cms.businesslogic.media;
using umbraco.BusinessLogic;
using System.Configuration;
using log4net;
using System.Reflection;
using Umbraco.Core.Logging;
using System.Web.Optimization;
using System.Web.Http;
using System.Data.SqlClient;
using System.Data;
using System.Web.Script.Serialization;
using System.Collections;
using System.Collections.Specialized;
using System.Web.UI.WebControls;
using Stripe;
using System.Web.UI;
using System.Text.RegularExpressions;
using System.Web.Configuration;
using System.Web.Security;
using Newtonsoft.Json;
using System.Net.Mail;
using System.Text;
using System.Net;
using System.IO;
public class RegisterUserController : UmbracoApiController
{
public static string UmbracoConnectionString = ConfigurationManager.ConnectionStrings["umbracoDbDSN"].ConnectionString;
public static IMemberService memberService = ApplicationContext.Current.Services.MemberService;// Here I am getting ApplicationContext.Current as null
}
But I am calling this class I am getting ApplicationContext.Current as null.
So because of that I have Many methods in this class which works on memberService and due to this null reference they are not working. Even other methods which are not using member service are not being called.
For me, the code below seems to work.
public class TestApiController : UmbracoApiController
{
private static string _umbracoConnectionString = ConfigurationManager.ConnectionStrings["umbracoDbDSN"].ConnectionString;
private static IMemberService _memberService = global::Umbraco.Core.ApplicationContext.Current.Services.MemberService;
public int GetTest()
{
var memberCount = _memberService.Count();
return memberCount;
}
}
If the above code isn't working for you e.g. with AJAX, try the below code:
public class TestApiController : UmbracoApiController
{
public int GetTest()
{
var ms = Services.MemberService;
return ms.Count();
}
}

The name 'Directory' does not exist in the current context

I create music player, because I'm learning how to write a Universal App. I'm trying to load a list of all songs in a folder but when I use the GetFiles, Visual Studio shows me the error: "
The name 'Directory' does not exist in the current context"
even though at the beginning of the code I have "using System.IO". What am I doing wrong?
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
namespace project_2
{
public sealed partial class Select : Page
{
private void add_new_song(int song_number)
{...}
private string[] load_songs()
{
string[] paths = Directory.GetFiles(#"C:\");
}
public Select()
{...}
private void GridView_ItemClick(object sender, ItemClickEventArgs e)
{...}
}
}
Directory is not part of store apps SDK, and even if it would GetFiles would not exist as there are no synchronous methods in the SDK to access disc resources.
You are likely looking for StoreageFolder.GetFilesAsync or similar API...

How to make port forwarding with UPNPNATClass

I' trying to do port forwarding. I've done following:
NATUPNPLib.dll was added to references
NATUPNPLib was added to using section of page
Following codes were written
But a null reference exception thrown
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Net.Sockets;
using System.Net;
using NATUPNPLib;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
UPnPNATClass upnpnat = new UPnPNATClass();
IStaticPortMappingCollection mappings = upnpnat.StaticPortMappingCollection;
foreach (IStaticPortMapping map in mappings)
{
Console.WriteLine(map.ExternalIPAddress);
}
Console.ReadKey();
}
}
}
How can I overcome this problem?

Categories