私は休憩サービスに問題があります。私は、オブジェクトを投稿しようとしているが、それは私にエラーを与える:MySqlパラメータ文C#rest web services
型「にSystem.FormatException」の例外がKnjiznicaStoritev.dllで発生したが、ユーザーコードで
追加情報を扱っていなかった:入力文字列でした正しい形式ではありません。ここで
は私のコードです:
public void DodajKnjigo(Knjiga knjiga)
{
string connString = null;
try
{
connString = "server=localhost;userid=;password=;database=";
MySqlConnection conn = new MySqlConnection(connString);
MySqlCommand comm = conn.CreateCommand();
comm.CommandText = "INSERT INTO knjiga (idKnjiga, naslov, leto_izdaje, st_strani, koda, status)"
+" VALUES (@idKnjiga, @naslov, @leto_izdaje, @st_strani, @koda, @status)";
comm.Parameters.Add("idKnjiga", System.Data.SqlDbType.Int).Value = knjiga.idKnjiga;
comm.Parameters.Add("naslov", System.Data.SqlDbType.VarChar).Value = knjiga.naslov;
comm.Parameters.Add("leto_izdaje", System.Data.SqlDbType.Int).Value = knjiga.leto_izdaje;
comm.Parameters.Add("st_strani", System.Data.SqlDbType.Int).Value = knjiga.st_strani;
comm.Parameters.Add("koda", System.Data.SqlDbType.VarChar).Value = knjiga.koda;
comm.Parameters.Add("status", System.Data.SqlDbType.VarChar).Value = knjiga.status;
conn.Open();
int dodanih = comm.ExecuteNonQuery();
if (dodanih > 0)
{
UriTemplateMatch match = WebOperationContext.Current.IncomingRequest.UriTemplateMatch;
UriTemplate template = new UriTemplate("/knjiga/{idKnjiga}");
Uri novaKnjigaUri = template.BindByPosition(match.BaseUri, knjiga.idKnjiga.ToString());
WebOperationContext.Current.OutgoingResponse.SetStatusAsCreated(novaKnjigaUri);
}
conn.Close();
}
catch (Exception)
{
throw;
}
}
これは私のポスト要求である:私はポストにしようとしている
{
"idKnjiga": 7,
"naslov": "M Vaqqas",
"leto_izdaje": 1997,
"st_strani": 322,
"koda": "E50532",
"status": "Na izposojo"
}
クラス:
[DataContract(Namespace ="http://localhost:30366/knjige")]
public class Knjiga
{
[DataMember]
public int idKnjiga { get; set; }
[DataMember]
public string naslov { get; set; }
[DataMember]
public int leto_izdaje { get; set; }
[DataMember]
public int st_strani { get; set; }
[DataMember]
public string koda { get; set; }
[DataMember]
public string status { get; set; }
public Knjiga() { }
}
これは私の運転の契約であります:
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/knjiga", BodyStyle = WebMessageBodyStyle.Bare)]
void DodajKnjigo(Knjiga knjiga);
一部のデータベース情報:
私は本当に私に間違ったフォーマットエラーを与えている理由
が助けてくれてありがとう理解していません!
これは簡単で、効果的で、実際に動作します。 – klemsi123