我一直在努力构建一个Android应用程序,将Date发送到.Net Webservice。 webservice执行一个简单的insert语句将数据插入数据库。我尝试过很多东西而且无法弄明白。我会发布所有内容以获得答案。
这是我简单的.net webservice
[WebMethod]
public void insert_data(string id,string name, string lname,DateTime date)
{
using (SqlConnection conn = new SqlConnection("Data Source=BILGISAYAR;Initial Catalog=RotanetLocal;Persist Security Info=True;User ID=xxx;Password=xxx"))
{
conn.Open();
SqlCommand comm = new SqlCommand("insert into TestTable (id,name,lname,date) values('" + id+ "','" + name + "','" + lname + "','"+date+"')", conn);
comm.ExecuteNonQuery();
conn.Close();
}
}
这是来自android的代码,它发送日期对象
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("id",16);
request.addProperty("name","arif");
request.addProperty("lname","arif");
request.addProperty("date",Calendar.getInstance());
当我检查数据库时,我看到日期被插入为null。我试图将“01/01/2012”作为静态。但它再次插入null。
我应该以什么格式将日期从android java发送到.net webservice?
答案 0 :(得分:0)
我解决了自己的问题。我的所作所为如下。
检查你从Java发送的日期(android)
request.addProperty("date","2013-01-02");
在您的.net网络服务中,使用日期时间并将其格式化如下。
[WebMethod]
public void insert_data(string id,string name, string lname,DateTime date,byte[] image1)
{
using (SqlConnection conn = new SqlConnection("Data Source=ARIF-BILGISAYAR;Initial Catalog=RotanetLocal;Persist Security Info=True;User ID=sa;Password=1"))
{
conn.Open();
SqlCommand comm = new SqlCommand("insert into TestTable (id,name,lname,date,image1) values(@id,@name,@lname,@date,@image1)", conn);
comm.Parameters.AddWithValue("@id", id);
comm.Parameters.AddWithValue("@name", name);
comm.Parameters.AddWithValue("@lname", lname);
comm.Parameters.AddWithValue("@date", date.ToString("yyyyMMdd"));
comm.Parameters.Add("@image1", SqlDbType.Image);
comm.Parameters["@image1"].Value = image1;
comm.ExecuteNonQuery();
conn.Close();
}
}