반응형
닷넷1.1과 2.0에서 사용하는 mail서비스가 다르다.
예제는 2.0기준이고 메일전송하기 전에 반드시 설정해야할 내용이 있다.
iis/기본SMTP가상서버/등록정보/액세스/릴레이제한 에 127.0.0.1(localhost)를 지정해주어야 한다.

        MailMessage mail = new MailMessage();
        mail.From = new MailAddress("my@mail.com");
        mail.To.Add("your@mail.com);

        mail.Subject = "제목";
        mail.Body = "내용";
        mail.SubjectEncoding = System.Text.Encoding.Default;
        mail.BodyEncoding = System.Text.Encoding.Default;

        mail.IsBodyHtml = false;

        SmtpClient smtp = new SmtpClient("127.0.0.1");

        try
        {
            smtp.Send(mail);
            svcom.alert(Page, "메일 전송에 성공했습니다.");
        }
        catch (Exception err)
        {
            svcom.alert(Page, err.Message);
        }
반응형
using System.Diagnostics;
string file = @"e:\down\HelloWorld.exe";
Process.Start(file);

C#어플리케이션에서 수행하면 file에 지정된 파일이 정상동작한다.
그러나 asp.net상에서 수행하면 백그라운드에서 수행된다.
이유는 어플리케이션과 asp.net의 수행권한에서 오는 차이로 만약 asp.net의 실행권한을 administrator(로그인된 계정)으로 
맞춰준다면 asp.net상에서도 수행될 것이다. 그러나 보안에 취약해지는 단점을 가지고 있기 때문에 권장할 방법은 아니다.
일단은 asp.net상에서 수행할경우 백그라운드에서 수행은 되므로(엄밀히 말하면 iis계정에서 실행되는 것이지만)
배치파일등을 호출하는 용도등으로 사용할만 하다.

※  Process.Start()는 서버에서만 동작하므로 클라이언트상에서 수행할 수는 없다.
    보통 클라이언트에서 프로세스를 수행하도록 하는 방법은 ActiveX를 사용해서 주로 해결한다.
    (그외의 방법이 있는지는 모르겠고...)
반응형
ms관련 oledb나 odbc등은 오라클 데이터를 읽어오는데 문제가 생길 수 있다.
특히 BLOB형식 데이터는 읽을 수 없어서 에러가 발생한다.
솔루션 탐색기에서 

System.Data.OracleClient.dll을 선택하여 참조해 주면 된다.
using System.Data.OracleClient;선언후 오라클에 접속하면 해결완료.
반응형
//db에 저장된 데이터를 읽어 온다.
OleDbDataReader rd = Connection.dataRead(query.support_Read(code, tables));
            rd.Read();

            byte[] fileData;
//db에 저장된 파일을 byte[]형식으로 fileData에 저장
            fileData = (byte[])rd["filedata"];
//로컬에 반환할 파일의 이름
            string fileName = rd["filename"].ToString().Trim();

            rd.Close();
            Connection.dbConn().Close();

//euc-kr로 지정(한글로 저장한 파일명이 깨지는 것을 방지)
            Response.Charset = "euc-kr";
//Server.UrlEncode(euc-kr로 지정된 파일명을 인코딩)
            Response.AppendHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(fileName));
            Response.AddHeader("content-Length", fileData.Length.ToString());
            
            Response.BinaryWrite(fileData);
반응형
1. 영문만 입력 : style="ime-mode:disabled;"
2. 한글/영문 선택 : style="ime-mode:auto;"
3. 기본 한글 입력 : style="ime-mode:active;"
4. 기본 영문 입력 : style="ime-mode:inactive;"
※ 출처 : http://blog.naver.com/tb/nclovehs/150029556231

실적용 예
txtBox1.Attributes["style"] = "ime-mode:disabled;";
반응형
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;
반응형
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); //메일 발송
}

+ Recent posts