How to insert data from ASP.Net to MS SQL Server? - c#

This question has been asked for several times here. I read posted questions but I still have problem. I'm trying to insert values from ASP.Net form to SQL Server. I created a sample website to work on inserting data into Sql table. SQL Database's name is "TestDatabaseDB" which has one table called "Person". Person table has 4 columns. They are ID, FirstName, LastName, NationalID. The type of ID is "int". I set "Is Identity:Yes". So SQL will assign an ID to each inserted record. It just doesn't work. When I click the button nothing happens. It must insert data into database table or clears the textboxes at least but it doesn't.
I tried
SqlConnection conn= new SqlConnection(#"Data source=.\SQLEXPRESS; AttachDBFilename=""|DataDirectory|\TestWebSiteDB.mdf""; integrated user=true; User Instance=true")
It didn't work. So I changed that into:
SqlConnection conn = new SqlConnection("Data Source=. ; Database=TestWebSiteDB; Integrated Security=true");
Didn't make any difference. Here is my code:
using System;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnRegister_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Data Source=. ; Database=TestWebSiteDB; Integrated Security=true");
SqlCommand insert = new SqlCommand("insert into Person(FirstName, LastName, NationalID) values(#Name, #Surname, #ID)" ,conn);
insert.Parameters.AddWithValue("#Name", txtboxName.Text);
insert.Parameters.AddWithValue("#Surname", txtboxFamilyName.Text);
insert.Parameters.AddWithValue("#ID", txtboxNationalCode.Text);
try
{
conn.Open();
insert.ExecuteNonQuery();
}
catch
{
LMsg.Text="Error when saving on database";
conn.Close();
}
txtboxName.Text="";
txtboxFamilyName.Text = "";
txtboxNationalCode.Text = "";
}
}
Any help would be appreciated.

Try this:
protected void Register_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(#"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\DB_Users.mdf;Integrated Security=True");
SqlCommand insert = new SqlCommand("insert into tbl_users(name, username, password,email) values(#name, #username, #password,#email)", conn);
insert.Parameters.AddWithValue("#name", txtname.Text);
insert.Parameters.AddWithValue("#username", txtusername.Text);
insert.Parameters.AddWithValue("#password", txtpassword.Text);
insert.Parameters.AddWithValue("#email", txtemail.Text);
try
{
conn.Open();
insert.ExecuteNonQuery();
lbl_msg.Text = "Register done !";
//lbl_msg.Text = "ثبت نام با موفقیت انجام شد";
}
catch (Exception ex)
{
lbl_msg.Text = "Error: "+ex.Message;
//lbl_msg.Text = "خطا در ارتباط با پایگاه داده";
conn.Close();
}
}
It works for me.

You need to track what error you are getting as follows. Because it is not possible to help you without the actual error.
catch(Exception ex)
{
LMsg.Text=ex.Message;
}
Also you need to use finally in your code for closing connection rather than closing it into the catch block.
finaly
{
conn.Close();
}

check your connection string. in conn.open() you get exception ?
To create a data connection to a SQL Server database
In Server Explorer/Database Explorer click Connect to Database.
In the Choose Data Source dialog box, select Microsoft SQL Server, and then click OK.
If the Add Connection dialog box opens, and the Data source is not Microsoft SQL Server, click Change to open the Choose/Change Data Source dialog box
. For more information, see Choose/Change Data Source Dialog Box.
Select a server name from the drop-down list, or type the name of the server where the database you want to access is located.
Based on the requirements of your database or application, select either Windows Authentication or use a specific user name and password to log on to the SQL Server (SQL Server Authentication).
For more information, see Add/Modify Connection (Microsoft SQL Server).
Select the database you want to connect to from the drop-down list.
Click OK.
then copy generated connection string to your program.
when you install sql server the server name and the setting you choose for installing .affect your connection string.
for more inforamtion on installing sql server see the
installing sql server express edition
and also check this for connecting asp.net application to sql server
Asp.net connection to SQL Server

Actually the list view has a default method call onsorting. It will automatically sort the list view. onsorting will call the function as below.The function no need put any statement.
protected void Sorting(object sender,ListViewSortEventArgs e)
{
}
For the link button in list view u just simply put the tag like that:
<asp:ListView ID="DisplayContent" runat="server" onSorting="Sorting">
<asp:LinkButton ID="Name" runat="server" CommandName="Sorting" CommandArgument="Name" Text="Name" />

Try following steps:
Step1: Instead of putting you query in your C# file, declare a stored procedure for it like bellow:
CREATE PROCEDURE [dbo].[ADD_PERSON_SP]
/*Type of this variables should be their column types*/
#firstName varchar(MAX),
#lastName varchar(MAX),
#nationalID varchar(MAX)
AS
BEGIN
INSERT INTO [dbo].[Person] (FirstName, LastName, NationalID)
VALUES (#firstName,#lastName,#nationalID)
END
Step2: Using Stored Procedure where you need:
SqlConnection con = new SqlConnection(connectionString);
SqlCommand com = new SqlCommand("ADD_PERSON_SP", con);
com.Parameters.AddWithValue("#firstName", txtboxName.Text);
com.Parameters.AddWithValue("#lastName", txtboxFamilyName.Text);
com.Parameters.AddWithValue("#nationalID", txtboxNationalCode.Text);
com.CommandType = CommandType.StoredProcedure;
try
{
con.Open();
com.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
finally
{
if (con.State == ConnectionState.Open)
con.Close();
}
Keep in mind to:
Do not put db related stuffs in your C# files
Try to choose better names for your variables(specially for controls)
This may help you with connectionString
I hope that help

protected void btnRegister_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Data Source=. ; Database=TestWebSiteDB; Integrated Security=true");
SqlDataAdapter dap = new SqlDataAdapter("insert into Person(FirstName, LastName, NationalID) values(#Name, #Surname, #ID)", con);
dap.InsertCommand(txtboxName.Text, txtboxFamilyName.Text,txtboxNationalCode.Text);
txtboxName.Text="";
txtboxFamilyName.Text = "";
txtboxNationalCode.Text = "";
}

Related

Connection String Not Working- Not Allowing Connection to Database made in VS (C# Visual Studio)

I am currently working on building an attendance tracker that will take the user's input data and add it to a database table. I'm running into an issue where my connection string will not connect to the database? I've copied it directly as is, and even tried a few different tutorials with alternative ways with no success. This is for an assignment however, our SQL portion was quite small and I'm not sure where to go from here. Please let me know if something in my code needs revisited.
When I run the code I get the "unable to connect" exception I created below. I need it to run and add the user input to the table.
I have also noticed that my database connection often disconnects unless I refresh, is this common?
namespace AttendanceTracker
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void signInButton_Click(object sender, EventArgs e)
{
string connectionString = null;
connectionString = #"Data Source=(LocalDB)\MSSQLLocalDB; AttachDbFilename = C:\Users\soupy\Desktop\AttendanceTracker\AttendanceTrackerDatabase.mdf; Integrated Security = SSPI";
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = ("INSERT into AttendanceTrackerDatabase VALUES (#studentName,#studentID,#Date,#class)");
cmd.Parameters.AddWithValue("#Student_Name", nameTextBox.Text);
cmd.Parameters.AddWithValue("#Student_ID", studentIDTextBox.Text);
cmd.Parameters.AddWithValue("#Class", classDropDown.Text);
cmd.Parameters.AddWithValue("#Date", attendanceDate.Value);
try
{
con.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Your sign in has been recorded successfully!");
con.Close();
}
catch (Exception ex)
{
MessageBox.Show("Unable to open attendance tracker for updating.");
}
}
When using Parameter objects, you should ensure that the variable names are consistent.
Please modify your code as follows
cmd.CommandText = ("INSERT into AttendanceTrackerDatabase VALUES (#studentName,#studentID,#Date,#class)");
cmd.Parameters.AddWithValue("#studentName", nameTextBox.Text); // Modified to "studentName"
cmd.Parameters.AddWithValue("#studentID", studentIDTextBox.Text); // Modified to "studentID"
cmd.Parameters.AddWithValue("#Date", attendanceDate.Value);
cmd.Parameters.AddWithValue("#class", classDropDown.Text); // Modified to "class"

how to connect sql database server to usercontrol in windowsform by using c#?

I tried to connect the database to the user control that has in my desktop application. the catch block is running. can anyone see any error in here?
can someone help to find the correct code to connect SQL server management studio 2014 to windows form Application?
I have tried the code as we use to windows form. but it isn't working .is there any different code that uses to user control database connection?
SqlCommand cmd;
SqlConnection con;
private void btnsave_Click(object sender, EventArgs e) {
try {
con = new SqlConnection(# "Data Source=LAPTOP-EN6B5ABV;Initial Catalog=nature;Integrated Security=True");
con.Open();
cmd = new SqlCommand("INSERT INTO crop" + " (cropid, cropname, scnname, noofplant, culdate, ferttimeperiod, harvetimeperiod, addeddate,lifetime,lifetimeperiod) VALUES (#cropid, #cropname, #scnname, #noofplant, #culdate, #ferttimeperiod, #harvetimeperiod, #addeddate,#lifetime,#lifetimeperiod)", con);
cmd.Parameters.AddWithValue("#cropid", txtcropid.Text);
cmd.Parameters.AddWithValue("#cropname", txtcropname.Text);
cmd.Parameters.AddWithValue("#scnname", txtscnname.Text);
cmd.Parameters.AddWithValue("#noofplant", textBox1.Text);
cmd.Parameters.AddWithValue("#culdate", dateTimePicker1.Text);
cmd.Parameters.AddWithValue("#ferttimeperiod", comfert.SelectedItem);
cmd.Parameters.AddWithValue("#harvetimeperiod", comboBox1.SelectedItem);
cmd.Parameters.AddWithValue("#lifetime", textBox2.Text);
cmd.Parameters.AddWithValue("#lifetimeperiod", combolifetime.SelectedItem);
cmd.Parameters.AddWithValue("#addeddate", addeddate.Text);
cmd.ExecuteNonQuery();
con.Close();
} catch (Exception) {
MessageBox.Show("something went wrong in database server");
}
I expect the insertion of the data.
Here is my code that I got the correct output. There was an error related to the datetimepicker value. When Get the selected value of datetimepicker it was given an error.
I used this statement to insert date to the database.
cmd.Parameters.AddWithValue("#culdate", Convert.ToDateTime(dateTimePicker1.Value));
string date =DateTime.Now.ToShortDateString();
cmd.Parameters.AddWithValue("#cropid", txtcropid.Text);
cmd.Parameters.AddWithValue("#cropname", txtcropname.Text);
cmd.Parameters.AddWithValue("#scnname", txtscnname.Text);
cmd.Parameters.AddWithValue("#noofplant", txtnoofplant.Text);
cmd.Parameters.AddWithValue("#culdate", Convert.ToDateTime(dateTimePicker1.Value));
cmd.Parameters.AddWithValue("#ferttimeperiod", txtharvtime.Text);
cmd.Parameters.AddWithValue("#fert", comfert.SelectedItem.ToString());
cmd.Parameters.AddWithValue("#harvtimeperiod", txtharvtime.Text);
cmd.Parameters.AddWithValue("#harv", comboBox1.SelectedItem.ToString());
cmd.Parameters.AddWithValue("#addeddate", date);
cmd.Parameters.AddWithValue("#lifetimeperiod", txtlifetime.Text);
cmd.Parameters.AddWithValue("#life", combolifetime.SelectedItem.ToString());
cmd.ExecuteNonQuery();
con.Close();
string msg = "Crop Details are successfully saved...";
string title = "Saved";
System.Media.SystemSounds.Asterisk.Play();
MessageBox.Show(msg, title, MessageBoxButtons.OK, MessageBoxIcon.None);

unable to insert data in sql database with c# even no error accur

hy I want to insert new record in my database but am unable to do this even code is fully error free, I added following code in my button click event
here is my code
SqlConnection con= new SqlConnection("Data Source=.;Initial Catalog=Sample;Integrated Security=true;");
SqlCommand cmd;
SqlDataAdapter adapt;
private void btn_Update_Click(object sender, EventArgs e)
{
string query="insert into users(Name,Password)values('ubaid','ali')";
cmd = new SqlCommand(query, con);
con.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Record Updated Successfully");
con.Close();
}
I mean insert query is not updating my database, even when I execute my query it return 2 not 0 which means query applied successfully,
not really an answer but the steps you need to take to see whats going on, so we can help you are a bit longer...
you will need to execute the following query, once in your sql management studio, and once in your program ... i suspect the result being different in both cases
select ##SERVERNAME, ##SERVICENAME, db_name(), SCHEMA_NAME()
on the code side please use this:
private void btn_Update_Click(object sender, EventArgs e)
{
// string query="insert into users(Name,Password)values('ubaid','ali')";
// cmd = new SqlCommand(query, con);
// con.Open();
// cmd.ExecuteNonQuery();
// MessageBox.Show("Record Updated Successfully");
// con.Close();
string query="select ##SERVERNAME, ##SERVICENAME, db_name(), SCHEMA_NAME()";
cmd = new SqlCommand(query, con);
con.Open();
using(var rdr = cmd.ExecuteReader())
{
rdr.read();
MessageBox.Show($"{rdr.GetString(0)}, {rdr.GetString(1)}, {rdr.GetString(2)}, {rdr.GetString(3)} ");
}
con.Close();
}
the result should show the name of the server, its instance name, the name of your DB and of the default schema you are using in both cases
example result for my testmachine would look like this:
srv9, MSSQLSERVER, testdb, dbo
expectation in your case:
you will get 2 different results which means that your sql management studio, where you are trying to check if your code did the right thing, is using a different server, instance, database or schema
with the provided information it will be possible to change the used connectionstring so both your clients work on the same database...

How to connect a database to website using LINQ and dbml file

I am new to SQL server and trying to make a very simple website which will record usernames and passwords from clients into a database. I have created a database project with a table of users: user name and password. I built a website with a page containing user name text field, password text field and a login button. All I want is to record the usernames and passwords the users are entering (as simple as that). I want to do it via sql connection using LINQ-to-SQL. I know that I have to create SQLConnection class, create a dbml file and attach my database to it. I am having trouble creating a dbml file of my database and attaching my database to it in Visual Studio 2013. Can anyone please give direction to do so?
So far I have this class for the login page:
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string connStr = "data source=.; database = AuroraDB; integrated security=SSPI";
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["TODO"].ConnectionString);
try
{
string insertQuery = "insert into Users (Username, Password,) values(#uname , #password)";
SqlCommand command = new SqlCommand(insertQuery, connection);
command.Parameters.AddWithValue("#uname", UserNameTextBox.Text);
command.Parameters.AddWithValue("#password", PasswordTextBox.Text);
connection.Open();
command.ExecuteNonQuery();
Response.Write("Loggin was successful!");
}
catch(Exception exception)
{
Response.Write("Error occurred: " + exception.Message);
}
finally
{
connection.Close();
}
}
}

ASP .net C# SqlConnection Error

I have a window hosting in 1and1.com. I try to connect the database with following code, but I get the error message. You can view error message here http://www.s499993321.onlinehome.us/Default.aspx
Does any one know happen? How to connect the database?
protected void Page_Load(object sender, EventArgs e)
{
using (SqlConnection cn = new SqlConnection("Server=localhost; Database=db500148144; User Id=dbo500148144; Password=12345abc"))
{
cn.Open();
SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM people", cn);
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
rdr.Read();
Response.Write(rdr[0].ToString());
}
// Response.Write("How");
}
If SQL server is on the same machine use
SqlConnection cn = new SqlConnection(#"Server=.\MSSQLSERVER2012; Database=db500148144; User Id=dbo500148144; Password=12345abc")
MSSQLSERVER2012 is the instance name. One way to find out the name is by opening services.msc and checking the name of the sql server service running on your machine. for me it was
"SQL server(MSSQLSERVER2012)"
There is issue in your web.config file, Remove CustomeErrro tag from web.config , and try.

Categories

Resources