error อ่าพี่ แล้วbuile เกิด error หน้าconfig.aspxว่า There can be only one 'page' directive
เอา asp classic มาปนกับ asp.net แล้ว
ที่มัน error เพราะหนึ่ง page จะอนุญาตให้มี <%@ Page Language="VB"....
ได้เพียงอันเดียว การ include คือการรวมทั้งสอง file เข้าด้วยกัน มันเลยเห็น <%@ Page Language="VB"....
หลายอัน ทำให้ error
สำหรับ asp.net ถ้าไม่ต้องการเขียน connection ซ้ำหลายๆ ครั้ง ควรสร้าง class ขึ้นมาใช้งานจะดีกว่า
เพิ่มเติมคำแนะนำ
asp.net มี master page ซึ่งมาแทน include ใน asp classic แต่เอามาใช้เป็น connection ไม่ได้
เพราะใน asp.net เขาจะเขียน connection string ไว้ที่ web.config แล้ว page ต่างๆ จะเรียกตัวแปร
string นั้นจาก web.config มาใช้
error อันที่ 2 ขอดู code เต็มๆ ได้ไหม ให้มาแค่นี้มึน
Date :
2009-11-27 15:32:30
By :
tungman
พี่พอมีตัวอย่างในwebconfigและการเรียกใช้งานในหน้าอื่นๆให้ดูหน่อยได้ไหมค่ะ(หนูใช้VBนะพี่)
ทุกทีใช้ตัวนี้อ่าพี่
Code (ASP)
Dim provider As String = "Provider=SQLOLEDB;"
provider += "Data Source=NOTE\SQLEXPRESS;"
provider += "Initial Catalog=Genius;"
provider += "Integrated Security=SSPI"
Dim conn As New OleDbConnection(provider)
conn.Open()
Date :
2009-11-27 15:44:49
By :
LuckyStar
ตัดมาเฉพาะบางส่วน เป็น connection ของ ms sql server (พี่ใช้ c# จ้า จะทำ webapp ใช้ภาษา c ดีกว่า จะได้ไม่งงเวลาเขียน javascript ด้วย ใช้ ajax ก็ต้องใช้ javascript เพราะฉะนั้นเราหนีไม่พ้นภาษา c หรอก เลยมุ่งเอาดีด้าน c อย่างเดียว vb เอาแค่พอรู้ อ่านโค้ดชาวบ้านออกพอ)
ทำการ add ตัวแปรชื่อ SqlConnectionString ซึ่งเก็บรายละเอียดการติดต่อ database sql ใน web.config
web.config
<configuration>
<configSections>
<connectionStrings>
<add name="SqlConnectionString" connectionString="Data Source=127.0.0.1;Initial Catalog=SqlDataBase;User id=ไม่บอก;password=ไม่ให้;" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configSections>
<configuration>
สร้าง class เพื่อใช้งาน table ใน SqlDataBase สมมุติใน SqlDataBase มี table ชื่อ Customer เก็บข้อมูลลูกค้าอยู่ (สร้างไว้ใน folder App_Code)
Customer.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.IO;
using System.Web.Configuration;
/// <summary>
/// Summary description for SqlDataBase
/// </summary>
public class Customer
{
private SqlConnection sqlConnection;
public Customer()
{
//
// TODO: Add constructor logic here
//
string SqlConnectionString = WebConfigurationManager.ConnectionStrings["SqlConnectionString"].ToString();
sqlConnection = new SqlConnection(SqlConnectionString);
}
public DataTable GetCustomer()
{
DataTable Dt = new DataTable();
string sqlCommandString = "Select * From [Customer]";
SqlCommand sqlCommand = new SqlCommand(sqlCommandString, sqlConnection);
try
{
SqlDataAdapter DataAdapter = new SqlDataAdapter(sqlCommand);
DataAdapter.Fill(Dt);
}
catch (Exception ex)
{
Debug("GetCustomer Error: " + ex.Message);
}
return Dt;
}
public DataTable GetCustomerByCode(string CustomerCode)
{
DataTable Dt = new DataTable();
string sqlCommandString = "Select * From [Customer] Where [CustomerCode]=@CustomerCode";
SqlCommand sqlCommand = new SqlCommand(sqlCommandString, sqlConnection);
sqlCommand.Parameters.Add("@CustomerCode", SqlDbType.NVarChar);
sqlCommand.Parameters["@CustomerCode"].Value = CustomerCode;
try
{
SqlDataAdapter DataAdapter = new SqlDataAdapter(sqlCommand);
DataAdapter.Fill(Dt);
}
catch (Exception ex)
{
Debug("GetCustomerByCode Error: " + ex.Message);
}
return Dt;
}
protected void Debug(string msg)
{
string debugFile = Server.MapPath(".\\debug.log");
FileInfo ObjFile = new FileInfo(debugFile);
StreamWriter ObjStreamWriter = ObjFile.AppendText();
ObjStreamWriter.WriteLine("[" + DateTime.Now.ToString() + "]: " + msg);
ObjStreamWriter.Close();
}
}
เราก็จะได้ class ชื่อว่า Customer ซึ่งมี 2 Mothod คือ
public DataTable GetCustomer()
public DataTable GetCustomerByCode(string CustomerCode)
Date :
2009-11-27 17:59:17
By :
tungman
เวลาเราใช้งานก็ใช้ผ่าน object
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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 runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="100%" cellspacing="2" cellpadding="0">
<tr>
<td align="center">
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</td>
</tr>
<tr>
<td align="center">
<asp:GridView ID="GridView2" runat="server">
</asp:GridView>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Customer MyCustomer = new Customer();
GridView1.DataSource = MyCustomer.GetCustomer();
GridView1.DataBind();
GridView2.DataSource = MyCustomer.GetCustomerByCode("5200275");
GridView2.DataBind();
}
}
เห็นไหม สะดวกเวลาใช้
Date :
2009-11-27 18:05:54
By :
tungman
ถ้าอยากเพิ่ม mothod เพื่อควบคุม table customer ก็เพียงเขียนใส่ใน class customer.cs
เช่น insert, update, delete หรือ จะ query แบบอื่นๆ ก็ได้
เอาตัวอย่าง delete ไป
Delete Customer Method
public void DeleteCustomer(string CustomerCode)
{
string sqlCommandString = "Delete [Customer] Where [CustomerCode]=@CustomerCode";
SqlCommand sqlCommand = new SqlCommand(sqlCommandString, sqlConnection);
sqlCommand.Parameters.Add("@CustomerCode", SqlDbType.NVarChar);
sqlCommand.Parameters["@CustomerCode"].Value = CustomerCode;
sqlConnection.Open();
sqlCommand.ExecuteNonQuery();
sqlConnection.Close();
}
เวลาใช้
Code (C#)
Customer MyCustomer = new Customer();
MyCustomer.DeleteCustomer("5200275");
Date :
2009-11-27 18:13:15
By :
tungman
ใน .NET ไม่ต้อง Include ครับ เพราะใน Project จะมองเป็นตัวเดียวกันครับ
Date :
2009-11-27 18:26:47
By :
webmaster
ขอบคุนพี่ๆมากๆเลยนะ
Date :
2009-11-30 14:55:58
By :
LuckyStar
Load balance : Server 02