asp.net 및 SQL 서버를 사용하여 안드로이드 응용 프로그램 용 Restful API (JSON 기반 API)를 만들었습니다. 나는이 링크를 따라 RESTful 웹 서비스를 통해 SQL Server 데이터베이스에 안드로이드 응용 프로그램에서 CURD 작업을 수행 성공입니다 : 내가 원하는 것은 2 이상의 관련 SQL에 대한 하나의 웹 메소드를 만들특정 DataTable 행의 나머지 열에 값을 추가하는 방법은 무엇입니까?
이제http://www.tutecentral.com/restful-api-for-android-part-1/
입니다 선택 쿼리를 수행하고 단일 데이터 테이블에 결과를 추가합니다. 즉, 두 번째 쿼리를 실행할 때 데이터 테이블 행의 나머지 열에 값을 추가합니다. 하지만 난 그렇게 할 노력하고있어 내 응용 프로그램 충돌 :
웹 서비스 방법 위의 시나리오는 다음과 같습니다
public DataTable GetStaffProfile(string userid)
{
String faculty_id="";
DataTable staffProfile = new DataTable();
//Adding data to these columns on executing 1st sql query
staffProfile.Columns.Add(new DataColumn("eid", typeof(String)));
staffProfile.Columns.Add(new DataColumn("empid", typeof(String)));
staffProfile.Columns.Add(new DataColumn("userid", typeof(String)));
staffProfile.Columns.Add(new DataColumn("fname", typeof(String)));
staffProfile.Columns.Add(new DataColumn("lname", typeof(String)));
staffProfile.Columns.Add(new DataColumn("fathername", typeof(String)));
staffProfile.Columns.Add(new DataColumn("dob", typeof(String)));
staffProfile.Columns.Add(new DataColumn("nationality", typeof(String)));
staffProfile.Columns.Add(new DataColumn("religion", typeof(String)));
staffProfile.Columns.Add(new DataColumn("cnic", typeof(String)));
staffProfile.Columns.Add(new DataColumn("gender", typeof(String)));
staffProfile.Columns.Add(new DataColumn("domicile", typeof(String)));
staffProfile.Columns.Add(new DataColumn("designame", typeof(String)));
staffProfile.Columns.Add(new DataColumn("dname", typeof(String)));
staffProfile.Columns.Add(new DataColumn("employmentdate", typeof(String)));
//Adding data to these columns on executing 2nd sql query
staffProfile.Columns.Add(new DataColumn("qualification", typeof(String)));
staffProfile.Columns.Add(new DataColumn("university", typeof(String)));
staffProfile.Columns.Add(new DataColumn("majors", typeof(String)));
staffProfile.Columns.Add(new DataColumn("year", typeof(String)));
staffProfile.Columns.Add(new DataColumn("city", typeof(String)));
staffProfile.Columns.Add(new DataColumn("country", typeof(String)));
if (dbConnection.State.ToString() == "Closed")
{
dbConnection.Open();
}
string query = "SELECT eid, empid, userid, fname,lname, fathername, dob, nationality, religion, cnic, gender, domicile,(select title from uw_designation where desigid=uw_employee.desigid) as designame,(select dname from uw_department where "
+"deptid=uw_employee.deptid) as dname, employmentdate FROM uw_employee where userid='"+userid+"'";
SqlCommand command = new SqlCommand(query, dbConnection);
SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
faculty_id = reader["eid"] as string;
staffProfile.Rows.Add(reader["eid"], reader["empid"], reader["userid"], reader["fname"], reader["lname"], reader["fathername"], reader["dob"], reader["nationality"],
reader["religion"], reader["cnic"], reader["gender"], reader["domicile"], reader["designame"], reader["dname"],
reader["employmentdate"]);
}
}
reader.Close();
//getting staff qualification
string query2 = "SELECT TOP(1) eid, qualification, university, majors, year,city,country " +
"FROM uw_employee_education where eid='"+faculty_id+"'";
SqlCommand command2 = new SqlCommand(query2, dbConnection);
SqlDataReader reader1 = command2.ExecuteReader();
if (reader1.HasRows)
{
while (reader1.Read())
{
staffProfile.Rows[0]["qualification"]=reader1["qualification"] as string;
staffProfile.Rows[0]["university"] = reader1["university"]as string;
staffProfile.Rows[0]["majors"] = reader1["majors"] as string;
staffProfile.Rows[0]["year"] = reader1["year"] as string;
staffProfile.Rows[0]["city"] = reader1["city"] as string;
staffProfile.Rows[0]["country"] = reader1["country"] as string;
}
}
reader1.Close();
dbConnection.Close();
return staffProfile;
}
두 쿼리는 하나 개의 결과를 반환합니다. 모든 종류의 도움을 주시면 감사하겠습니다. 미리 감사드립니다.