소년포비의 세계정복!!

PDA에서 웹서비스 호출. 리턴값 데이터셋으로 받기 본문

윈도우폰 세상/Windows Phone

PDA에서 웹서비스 호출. 리턴값 데이터셋으로 받기

소년포비 2009. 9. 27. 14:30
1. ArrayList를 이용한 방법 : 그냥 이렇게해도 되겠지 하고 해봤다.. 되더라..
private void button1_Click(object sender, System.EventArgs e)
{
	WebService.Service1 svc = new WebService.Service1();
	ArrayList arrList = new ArrayList();
	arrList.Add(svc.UserConfirm(textBox1.Text, textBox2.Text));
	IEnumerator iEnum = arrList.GetEnumerator();
	if(iEnum.MoveNext())
	{
		DataSet ds = (DataSet)iEnum.Current;
		String msg = ds.Tables[0].Rows[0]["result"].ToString();
		MessageBox.Show(msg);
	}
}
2. DataSet을 이용한 방법
private void button1_Click(object sender, System.EventArgs e)
{
	WebService.Service1 svc = new WebService.Service1();
	DataSet ds = new DataSet();
	ds = svc.UserConfirm(textBox1.Text, textBox2.Text);
	String msg = ds.Tables[0].Rows[0]["result"].ToString();
	MessageBox.Show(msg);
}
##################### 웹서비스(C# ASP.NET 웹서비스) #############################
[WebMethod]
public DataSet UserConfirm(string sabun, string pass)
{
	try
	{
		dbConn = new SqlConnection("server=localhost;uid=sa;pwd=xxx;database=test");
		dbConn.Open();
		SqlCommand cmd = new SqlCommand();
		cmd.Connection = dbConn;
		cmd.CommandType = CommandType.StoredProcedure;
		cmd.CommandText = "dbo.SP_MEMBER_CONFIRM";				
		cmd.Parameters.Add("@sabun", SqlDbType.VarChar, 10);
		cmd.Parameters.Add("@pass", SqlDbType.VarChar, 8);
		cmd.Parameters["@sabun"].Value = sabun;
		cmd.Parameters["@pass"].Value = pass;
		SqlParameter myParameter = cmd.Parameters.Add("@opt", SqlDbType.Int);
		myParameter.Direction = ParameterDirection.Output;
		cmd.ExecuteNonQuery();
		int i_result_value = 0 ;
		i_result_value = Convert.ToInt32(cmd.Parameters["@opt"].Value);
		String massage = "";
		switch(i_result_value)
		{
			case 1:
				massage = "로그인 완료";
				break;
			case 2:
				massage = "계정이 존재하지 않습니다.";
				break;
			case 3:
				massage = "비밀번호가 일치하지 않습니다.";
				break;
		}	
		DataSet msg = new DataSet();
		DataTable table = new DataTable("t_userchk");
		DataColumn i_column = new DataColumn();
		i_column.DataType = System.Type.GetType("System.Int32");
		i_column.ColumnName = "index";
		table.Columns.Add(i_column);
		DataColumn str_column = new DataColumn();
		str_column.DataType = System.Type.GetType("System.String");
		str_column.ColumnName = "result";
		table.Columns.Add(str_column);
		DataRow row = table.NewRow();
		row["index"] = i_result_value;
		row["result"] = massage;
		table.Rows.Add(row);
		msg.Tables.Add(table);
		return msg;
	} 
	catch(Exception e) 
	{
		System.Console.WriteLine(e.Message); 
		return null;
	}
	finally
	{
		dbConn.Close();
	}
}