테스트할 화면을 그린다. TextBox 를 두개만 우선 작성한다. WingtipToys 의 products테이블은 ID 가 자동 증가되되록 되어 있어서 SQL 에서는 값을 세팅하면 오류가 난다. 그래서 not null 필드인 productName과 description 필드만 값을 세트해 보기로 한다.
[Insert1.aspx]
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Insert1.aspx.cs" Inherits="WingtipToys.Insert1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div> Insert Example</div> <br />
Enter product information to be added. <br />
Product Name : <asp:TextBox ID="TextBox2" runat="server" Width="162px"></asp:TextBox> <br />
Discription : <asp:TextBox ID="TextBox3" runat="server" Width="408px"></asp:TextBox> <br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Save" Width="42px" /> <br />
<asp:Label ID="Label1" runat="server"></asp:Label>
</form>
</body>
</html>
버튼을 클릭했을 때 수행될 스크립트도 Button1_Click() 에 작성을 한다. Save 를 눌렀을 때 정상적으로 수행이 완료되면 ProductName Saved! 라는 메세지가 화면 아랫쪽에 출력될 것이다.
[Insert1.aspx.cs]
using System;
using System.Configuration;
using System.Data.SqlClient;
namespace WingtipToys
{
public partial class Insert1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["WingtipToys"].ConnectionString);
string query = "insert into products(productname, description) values ( '" + TextBox2.Text + "','" + TextBox3.Text + "')";
conn.Open();
SqlCommand cmd = new SqlCommand(query, conn);
cmd.ExecuteNonQuery();
conn.Close();
Label1.Text = TextBox2.Text + " Saved!";
}
}
}
[실행결과]
데이타 값을 binding 하는 다른 방법이 있다. 마치 java 에서의 PreparedStatement 와 비슷한 사용법이다.
using System;
using System.Configuration;
using System.Data.SqlClient;
namespace WingtipToys
{
public partial class Insert2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["WingtipToys"].ConnectionString);
string query = "INSERT INTO PRODUCTS(productName, description) VALUES (@productName, @description)";
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@productName", TextBox2.Text );
cmd.Parameters.AddWithValue("@description", TextBox3.Text );
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
Label1.Text = TextBox2.Text + " Saved!";
}
}
}
이제 로컬 DB 를 조회해 보면 데이타가 저장된 것을 확인할 수 있다.
ASP.NET 도 이것저것 익혀서 익숙해지려면 많은 시간이 들어가야 할 것 같은 불김함이 엄습해 온다.
새로운 개발툴, 환경, 에러에 바로바로 대응하려면 익숙해지는 시간이 필요한 것은 마찬가지겠다.
'컴퓨터활용 > ASP.NET' 카테고리의 다른 글
ASP.NET 시작 (0) | 2015.04.21 |
---|