2012-12-02 62 views
0

我想写一个web方法,使我能够通过Web服务直接将文本插入到sql表中。我设法查看在Web服务xml页面上手动输入的任何文本。希望我现在要做的是能够将数据从Web服务插入数据库。Web服务 - Web方法和数据库

背后的想法是,用户可以通过Web服务访问视图并向数据库添加信息/文本。我将非常感谢以下解决上述WebMethod(public void InsertInfo ...)问题的指导。

我想如何创建/添加将直接插入数据到表的文本框的帮助。或者通过Web服务将信息插入表格的任何其他方式。

namespace SkiFriendService 
    { 
     /// <summary> 
     /// Summary description for Service1 
     /// </summary> 
     [WebService(Namespace = "http://tempuri.org/")] 
     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
     [System.ComponentModel.ToolboxItem(false)] 
     // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
     // [System.Web.Script.Services.ScriptService] 
     public class Service1 : System.Web.Services.WebService 
     { 
      SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SkiFriendService.Properties.Settings.Setting"].ToString()); 


      [WebMethod] 
      public string simpleMethod(String srt) 
      { 
       return "Hello "+srt; 
      } 


      [WebMethod] 
      public int anotherSimpleMethod(int firstNum, int secondNum) 
      { 
       return firstNum + secondNum; 
      } 


      [WebMethod] 
      public string[] getMessage(string from, string to) 
      { 
       List<string> messages = new List<string>(); 
       con.Open(); 
        string sqlquery = string.Format("select Message from MessageTable where Sender='{0}' and Receiver='{1}'", from, to); 
       SqlCommand com = new SqlCommand(sqlquery, con); 
       SqlDataReader sqlReader = com.ExecuteReader(); 
       while (sqlReader.Read()) 
       { 
        messages.Add(sqlReader.GetString(0)); 
       } 
       con.Close(); 
       return messages.ToArray(); 
      } 


      [WebMethod] 
      public void InsertInfo(string sender, string receiver, string message) 
      { 
       List<string> messages = new List<string>(); 
       con.Open(); 
       string sql = "INSERT INTO MessageTable (Sender, Receiver, Message) VALUES (@Sender, @Receiver, @Message)"; 
       SqlCommand com = new SqlCommand(sql, con); 
       SqlDataReader sqlReader = com.ExecuteReader(); 
       while (sqlReader.Read()) 
       { 
        messages.Add(sqlReader.GetString(0)); 
       } 
       con.Close(); 

      } 





      } 



      } 

我希望我已经清楚这一点。我仍然在学习,所以这对我来说很新鲜。我将不胜感激任何帮助。谢谢

回答

2
 [WebMethod] 
     public void InsertInfo(...) 
     { 
      ... 
      SqlDataReader sqlReader = com.ExecuteReader(); 

如果要插入的数据,你可能不想使用的东西与它的名字DataReader的。改为使用DataAdapter


一个更大的问题

更大的问题是,你似乎已经复制并粘贴代码到你的网页InsertInfo没有方法阅读它。如果你读过你的代码,你的大脑应该锁定了六个令牌中的至少一个,其中包括阅读阅读器。锁定后,你的大脑应该对自己说,“Self,我在更新或插入任何东西?我似乎只是阅读东西。”

通过阅读其他人的代码,然后通过阅读您自己的代码来培养该技能。根据我的经验,只要读取您的自己的代码,您就不会很快学会。我们的大脑似乎使我们的眼睛无视我们自己的错误。