반응형
string _return = "false";

StringBuilder UrlEncoded = new StringBuilder();
byte[] SomeBytes = null;
int leng = 1024;
char[] buffer = new char[leng];

WebRequest request = WebRequest.Create("http://서블릿 주소");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
//자바서블릿에 정의된 파라미터를 위한 처리부분
UrlEncoded.Append("?javanet=none");
for (int i=0; i<_param.Length/2; i++) 
{
UrlEncoded.Append("&"+_param[0,i]+"="+_param[1,i]);
}

SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
request.ContentLength = SomeBytes.Length;
Stream newStream = request.GetRequestStream();
newStream.Write(SomeBytes, 0, SomeBytes.Length);
newStream.Close();

WebResponse res = request.GetResponse();

StreamReader sr = new StreamReader(res.GetResponseStream(),System.Text.Encoding.Default);

int count = 0;
string tmpVal = "";
do
{
count = sr.Read(buffer,0,leng);
tmpVal += new string(buffer,0,count);
}while(count>0);
sr.Close();
//자바서블릿에서 처리된 결과를 반환
_return = tmpVal.Trim();
return _return;
반응형
①VS.NET(asp.net)에서 오라클(SQLAllocHandle)에러 발생 by windows server 2003 프로그래밍  

오라클은 데이터베이스를 서비스하는 컴퓨터에는 반드시 클라이언트 프로그램이
설치 되어 있어야 한다. 1차적으로 SQLAllocHandle에러가 발생했을 경우에는
클라이언트프로그램의 설치가 정확히 이루어 졌는지 확인할 필요가 있다.
2차적으로 윈도우즈가 자체적으로 asp.net을 서비스하기 위해서는 오라클서비스에
접근해야 하는데 클라이언트가 설치되었다고 해서 자동으로 접근을 허락하지 않는다.
(-_-; 동일한 서버내에서 일어나는 event들인데도 말이지)
따라서 윈도우즈 상의 오라클설치 폴더에 iis계정관리자가 접근할 수 있도록 
허락해 주어야 한다. 『c:/oracle/oracle92』폴더에 설치되어있다고 가정할때(오라클9i디폴트
설치시 디렉토리임) oracle92폴더의 보안 속성을 확인하여 iis프로세스시작계정을 추가한다.
iis프로세스시작계정은 『iwam_사용자명』으로 생성되어 있다. 내컴퓨터가 abc라면
iis프로세스시작계정은 iwam_abc가 되니 찾아서 추가해주면 된다.
윈도우즈xp에서 보안설정이 보이지 않는 경우가 있고 별도의 설정법이 있지만 귀찮아서 패스...
※ 계정을 추가했지만 계속 에러가 발생한다면 reboot해주는 센스 발휘~



②asp.net 으로 오라클 접근시에 "DLL(oci.dll)을(를) 로드할 수 없습니다. 
에러발생시 오라클 루트폴더 C:\oracle\ora92에 IWAM_(iis관련계정)계정에 권한을 부여해야한다.
반응형
--MSSQL 2000
select top 10* from table_name
--MSSQL 2005
select top(10)* from  table_name

반응형
//기본 함수
select getdate()
//문자형으로 가져오기 ('20091231')
SELECT      CONVERT(varchar(8),getdate(),112) 

반응형
//MS SQL 2000
select
    tb.snum,
    ta. code,
    tc.user_name,
    ta.title,
    ta.contents,
    ta.filename,
    ta.filedata
from board01 as ta,
(
    select count(b.code) as snum, b.code
    from board01 as a,
    (
        select code from board01
    ) as b
    where a.code >= b.code
    group by b.code
) as tb,
info_users as tc
where ta.code = tb.code
and ta.writer = tc.user_id

//MS SQL 2005
select (Row_number() Over(Order By Refer desc, Step)) as aaa,* from t_board2


MS SQL 2000은 Row_number함수를 지원하지 않는다.
사용자가 함수를  직접 만들어서 사용하거나 서브쿼리를 만들어서 카운트를 지정한후 
직접 Row number를 뽑아내는 수 밖에 없다.
반응형
using System;
using System.Globalization;

public class SamplesTextInfo  
{

public static void Main()  {
//셈플데이터
string myString = "wAr aNd pEaCe";
//문자변환을 하기 위한 선언
TextInfo myTI = new CultureInfo("en-US",false).TextInfo;
// 소문자로
Console.WriteLine( "\"{0}\" to lowercase: {1}", myString, myTI.ToLower( myString ) );
// 대문자로
Console.WriteLine( "\"{0}\" to uppercase: {1}", myString, myTI.ToUpper( myString ) );
// 대소문자를 반전
Console.WriteLine( "\"{0}\" to titlecase: {1}", myString, myTI.ToTitleCase( myString ) );

}

반응형
//XML기본예제
XmlTextWriter myXmlTextWriter = new XmlTextWriter ("newbooks.xml", null);

myXmlTextWriter.Formatting = Formatting.Indented;
myXmlTextWriter.WriteStartDocument(false);
myXmlTextWriter.WriteDocType("bookstore", null, "books.dtd", null);
myXmlTextWriter.WriteComment("This file represents another fragment of a book store inventory database");
myXmlTextWriter.WriteStartElement("bookstore");
    myXmlTextWriter.WriteStartElement("book", null);
        myXmlTextWriter.WriteAttributeString("genre","autobiography");
        myXmlTextWriter.WriteAttributeString("publicationdate","1979");
        myXmlTextWriter.WriteAttributeString("ISBN","0-7356-0562-9");
        myXmlTextWriter.WriteElementString("title", null, "The Autobiography of Mark Twain");
        myXmlTextWriter.WriteStartElement("Author", null);
            myXmlTextWriter.WriteElementString("first-name", "Mark");
            myXmlTextWriter.WriteElementString("last-name", "Twain");
        myXmlTextWriter.WriteEndElement();
        myXmlTextWriter.WriteElementString("price", "7.99");
    myXmlTextWriter.WriteEndElement();
myXmlTextWriter.WriteEndElement();

//Write the XML to file and close the myXmlTextWriter
myXmlTextWriter.Flush();
myXmlTextWriter.Close();

//XML실제 예제
        string saveFile = (path.Trim().Substring(path.Length - 1, 1) == "\\" ? path + fileName : path + "\\" + fileName);
        XmlTextWriter xwriter = new XmlTextWriter(saveFile, null);
        xwriter.Formatting = Formatting.Indented;
        xwriter.WriteStartDocument();

        xwriter.WriteStartElement("transInfo");
        xwriter.WriteElementString("dataKind", dataKind);
        xwriter.WriteElementString("tableName", tableName);
        xwriter.WriteElementString("receiveDate", today);

        xwriter.WriteStartElement("contents", null);
        string _tmpcontent = (contents.Trim().Substring(contents.Length - 1, 1) == WinsConst.ROWCONST.ToString() ? contents.Remove(contents.Length - 1) : contents);

//WinsConst.ROWCONST에 지정된 값으로 data1에 배열로 저장된 만큼 루프를 돌려서 XML저장
        string[] data1 = _tmpcontent.Split(WinsConst.ROWCONST);
        for (int i = 0; i < data1.Length; i++)
        {
//Split가 두번 나오는데 크게 한번 나눠주고 다시 세부로 나눠준다.(XML형식때문에 지정한 루프)
            string[] data2 = data1[i].Split(WinsConst.COLCONST);

            xwriter.WriteStartElement("content", null);

            for (int j = 0; j < data2.Length; j++)
            {
                xwriter.WriteElementString(colName[j], data2[j]);
            }
            xwriter.WriteEndElement();
        }

        xwriter.WriteEndElement();

        xwriter.WriteEndDocument();

        xwriter.Flush();

        xwriter.Close();
반응형
자바 소스
[code type="java"]
import java.sql.*;

public class CallableTest {
public static void main(String[] args) throws SQLException{
  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/mysql", "root", "apmsetup");
  
  PreparedStatement stmt;
  
  String sqlStr = "select * from db where id=?";
  
  stmt = conn.prepareStatement(sqlStr);
  
  stmt.setInt(1, 10);
  
  ResultSet rs = stmt.executeQuery();
  
  while(rs.next())
  {
   System.out.println(rs.getString(1));
  }
  
  stmt.close();
  conn.close();
 }
}
[/code]

=======================================
그리고 C# 소스
[code type="csharp"]
using System;
using System.Data;
using System.Data.SqlClient;

class SqlParamTest
{
    static void Main(string[] args)
    {
        string connStr = "Provider=MySQLProv;Data Source=mysql;" +
                         "Location=localhost;User Id=root;Password=apmsetup";
        string query = "select * from db where id=@ID";

        SqlConnection conn = new SqlConnection(connStr);
        conn.Open();

        SqlCommand comm = new SqlCommand(query, conn);

        comm.Parameters.Add("@ID", SqlDbType.Int);
        comm.Parameters["@ID"].Value = "10";

        SqlDataReader sr = comm.ExecuteReader();

        while (sr.Read())
        {
            Console.WriteLine(sr.GetInt32(0)));
        }
        sr.Close();
        conn.Close();
    }
}
[/code]

반응형
using System.Web.Mail;

private void SmtpMailSend()
{
MailMessage mail = new MailMessage();
mail.From = "보내는 사람";
mail.To = "받는사람";
mail.Cc = "참조";

mail.Subject = "메일 제목";
mail.Body = "메일 본문 내용";
mail.BodyFormat = MailFormat.Html; //메일 Fotmat 형식
mail.Priority = MailPriority.High; //메일 중요도
SmtpMail.Send(mail); //메일 발송
}

반응형
//--------------------서버주소 가져오기-----------------------------------

using System.Net;
using System.Net.NetworkInformation;
using System.Net.Sockets;

IPHostEntry IPHost = Dns.Resolve(Dns.GetHostName());
IPAddress addr = IPHost.AddressList[0];
IPHost.AddressList[0].ToString();

==================↓한줄요약===================================
IPAddress addr = Dns.Resolve(Dns.GetHostName()).AddressList[0];

//--------------------클라이언트 주소가져오기-----------------------------

Response.Write(Request.ServerVariables["REMOTE_HOST"]);

+ Recent posts