私はストアドプロシージャを呼び出すWeb APIを用意しています。ストアドプロシージャを挿入/更新し、データベースのレコードを選択します。挿入/更新が、私はXMLのレスポンスを構築する方法ではないと確信してExecuteReaderをXML HTTPレスポンスに変換する
[HttpGet]
public HttpResponseMessage Get(string Account)
{
if (string.IsNullOrEmpty(Account))
{
return Request.CreateResponse(new { error = "Input parameters cannot be Empty or NULL" });
}
string strcon = ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;
SqlConnection DbConnection = new SqlConnection(strcon);
SqlDataReader reader = null;
DbConnection.Open();
SqlCommand command = new SqlCommand("[dbo].[usp_InserUpadte]", DbConnection);
command.CommandType = CommandType.StoredProcedure;
//create type table
DataTable table = new DataTable();
table.Columns.Add("AccountID", typeof(string));
table.Rows.Add(Account);
SqlParameter parameter = command.Parameters.AddWithValue("@account_TT", table);
parameter.SqlDbType = SqlDbType.Structured;
parameter.TypeName = "account_TT";
XmlReader xreader = command.ExecuteXmlReader();
List<QueryResult>qresults = new List<QueryResult>();
while (xreader.Read())
{
QueryResult qr = new QueryResult();
qr.AccountID = xreader["AccountID"].ToString();
qr.CounterSeq = xreader["CounterSeq"].ToString();
qresults.Add(qr);
}
HTTPResponseMessage
にExecuteReader
を使用して読み込まれ、選択したレコードを変換しようとすると、動作しますが、私はQueryResultではというクラスを作成したが、私は、もしわかりませんこれはXMLレスポンスの作成に使用できます。
public class QueryResult
{
public string AccountID { get; set; }
public string CounterSeq { get; set; }
}
はまた、私はAPIが実行されるときにファイルにtheresponseを記述しようとしています。私はJSONとOracleDatabaseを使ってこの問題を解決しました。どんな助けでも大歓迎です。
私はあなたがのExecuteReaderを使用し、Web APIを処理させることができてExecuteReaderまたはXmlReaderを – Sid
を使用する必要がありますかシリアライゼーション。 –
XmlReaderを使用すると、xreader = command.ExecuteXmlReader();が発生します。 ExecuteXmlReaderに送信された無効なコマンドのようなエラーをスローします。コマンドはXML結果を返す必要があります – Sid