Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Làm thế nào để truyền dữ liệu từ winform sang webform thông qua webservice..?

  1. #1
    Ngày gia nhập
    03 2011
    Bài viết
    11

    Mặc định Làm thế nào để truyền dữ liệu từ winform sang webform thông qua webservice..?

    Mình có vấn đề này xin hỏi.
    Mình có một winform (formGuiDeThi)gồm các thông tin về đề thi trắc nghiệm, và một webform . Mình muốn khi click button Gửi đề thi (btnGuiDeThi) thì đồng thời ở webform thi trắc nghiệm sẽ hiện thị đầy đủ thông tin mà formGuiDeThi đã truyền (gồm cả danh sách các câu hỏi nữa) thông qua Webservice. Mình vẫn chưa biết phải làm thế nào, mong các bạn giúp đỡ cho mình ý kiến để giải quyết vấn đề này. Thanhks..
    Attached Thumbnails Attached Thumbnails formguidt.JPG   thiTN.JPG  

  2. #2
    Ngày gia nhập
    09 2011
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    37

    Vấn đề này là cái vấn đề đau đầu của nhiều người lắm đây.
    Lâu rồi không cập nhật kiến thức bên ASP.NET, không biết giờ cái này giải quyết thế nào.
    Trước kia thì mình giải quyết bằng cách này:
    + Trên webform sẽ có hàm AJAX request liên tục vào cái WebService.
    + Khi cập nhấn nút tải đề thi thì sẽ tải đề thi lên WebService
    + Lúc này thì hàm AJAX sẽ nhận được respone có nội dung là đề thi, sau đó ngưng request, load đề thi lên chọ user.
    p/s: ta là gấu

  3. #3
    Ngày gia nhập
    03 2011
    Bài viết
    11

    Cảm ơn bạn đã cho mình ý kiến, để mình thử xem thế nào , mà bạn còn demo đó không gửi mình tham khảo với.

  4. #4
    Ngày gia nhập
    04 2010
    Nơi ở
    My Computer
    Bài viết
    195

    Sau đây là ví dụ mình demo cho bạn:

    Sử dụng Ajax để lấy thông tin liên tục từ server, Khi có một tin nhắn từ phía winform gửi đến thì lập tức web sẽ hiển thị lên ngay!

    Bạn xây dựng một database như sau:
    Code:
    Create Database Test
    Use Test
    Go
    Create Table Test
    (
    	TestID Uniqueidentifier Primary Key,
    	AccSend Varchar(50),
    	Content Nvarchar(Max),
    	AccRecv Varchar(50),
    )
    Go
    Create Proc Add_Test
    (
    	@AccSend Varchar(50),
    	@Content Nvarchar(Max),
    	@AccRecv Varchar(50)
    )
    AS
    Insert Into Test(TestID, AccSend, Content, AccRecv)
    Values(NEWID(), @Accsend, @Content, @AccRecv)
    Ở Webservice bạn viết 2 method

    Add dữ liệu vào bảng Test
    Visual C# Code:
    1.     [WebMethod]
    2.     public void Add_Test(string _accSend, string _content, string _accRecv)
    3.     {
    4.        
    5.         using (SqlConnection con = new SqlConnection(a))
    6.         {
    7.             using (SqlCommand command = new SqlCommand())
    8.             {
    9.                 con.Open();
    10.                 command.Connection = con;
    11.                 command.CommandType = CommandType.StoredProcedure;
    12.                 command.CommandText = "Add_Test";
    13.                 command.Parameters.Add("@AccSend", SqlDbType.VarChar, 50).Value = _accSend;
    14.                 command.Parameters.Add("@Content", SqlDbType.NVarChar).Value = _content;
    15.                 command.Parameters.Add("@AccRecv", SqlDbType.VarChar, 50).Value = _accRecv;
    16.                 command.ExecuteNonQuery();
    17.             }
    18.         }
    19.     }

    Lấy thông tin khi biết tên người nhận

    Visual C# Code:
    1.     [WebMethod]
    2.     public DataSet GetTest(string _accRecv)
    3.     {
    4.  
    5.         using (SqlConnection con = new SqlConnection(a))
    6.         {
    7.             using (SqlCommand command = new SqlCommand())
    8.             {
    9.                 con.Open();
    10.                 command.Connection = con;
    11.                 command.CommandType = CommandType.Text;
    12.                 command.CommandText = "Select * From Test Where AccRecv='"+_accRecv+"'";
    13.                 SqlDataAdapter da = new SqlDataAdapter(command);
    14.                 DataSet ds = new DataSet();
    15.                 da.Fill(ds);
    16.                 return ds;
    17.             }
    18.         }
    19.     }

    Ở phần Winform bạn tạo giao diện



    Khi click chuột vào Gửi thì mình sẽ add thông tin vào bảng Test
    Visual C# Code:
    1.         ServiceReferenceTest.ServiceSoapClient service = new ServiceReferenceTest.ServiceSoapClient();
    2.         private void btnSend_Click(object sender, EventArgs e)
    3.         {
    4.             service.Add_Test(txtAccSend.Text, txtContent.Text,txtAccRecv.Text);
    5.         }

    Bây giờ bên Asp.net
    Sử dụng AJAX Timer
    Đặt Interval =1000
    Visual C# Code:
    1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    3.  
    4. <html xmlns="http://www.w3.org/1999/xhtml">
    5. <head runat="server">
    6.     <title></title>
    7. </head>
    8. <body>
    9.     <form id="form1" runat="server">
    10.     <asp:ScriptManager ID="ScriptManager1" runat="server" />
    11.     <div>
    12.         <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    13.             <ContentTemplate>
    14.                 <asp:Repeater ID="rptListenr" runat="server">
    15.                     <ItemTemplate>
    16.                         <%# DataBinder.Eval(Container.DataItem,"AccSend")%>
    17.                         :
    18.                         <%# DataBinder.Eval(Container.DataItem,"Content")%>
    19.                         <br />
    20.                     </ItemTemplate>
    21.                 </asp:Repeater>
    22.                         <asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
    23.                     </asp:Timer>
    24.             </ContentTemplate>
    25.         </asp:UpdatePanel>
    26.  
    27.     </div>
    28.     </form>
    29. </body>
    30. </html>
    Sự kiện Tick của Timer bạn cho load lại Repeater
    Visual C# Code:
    1.     localhost.Service service = new Service();
    2.     protected void Timer1_Tick(object sender, EventArgs e)
    3.     {
    4.         rptListenr.DataSource = service.GetTest("me");
    5.         rptListenr.DataBind();
    6.     }
    Như vậy bjo mỗi lần bạn nhập nội dung (người nhận là "me") và nhấn phím gửi thì bên web sẽ hiện thị tên người gửi và nội dung bạn vừa nhập vào.


    Hy vọng ví dụ nhỏ trên sẽ phần nào giúp được cho dự án của bạn!
    Visual Studio 2010.rar
    Đã được chỉnh sửa lần cuối bởi thach.thuc : 26-09-2011 lúc 03:42 AM. Lý do: Quên đính kèm
    Hôm nào em ra đi anh thẫn thờ trên phố nhỏ
    Mây chiều giăng lối đi em đứng nhìn mắt bơ vơ
    Tóc xõa từ bờ vai hoen mi sầu rưng rưng lệ
    Cho tròn tuổi tình yêu lúc ban đầu xa cách nhau

  5. #5
    Ngày gia nhập
    03 2011
    Bài viết
    11

    Cảm ơn mọi người rất nhiều

  6. #6
    Ngày gia nhập
    11 2010
    Bài viết
    4

    Mặc định Làm thế nào để truyền dữ liệu từ winform sang webform thông qua webservice..?

    Mình đang làm trang asp.net quản lí nhà hàng từ xa thông qua web service lấy csdl trên winform,trên localhost thì chạy ok rồi.Nhưng triển khai lên mạng thì không được.

    Bạn có thể giúp mình cách đưa web service lên mạng và lấy dữ liệu của winform để hiển thị lên webform. Thank rất nhìu.



Các đề tài tương tự

  1. Cách để Winform nhận giá trị thông qua Webservice C#?
    Gửi bởi duytuyen26 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 18-02-2014, 11:14 PM
  2. Truyền dữ liệu từ Winform sang Console
    Gửi bởi nguyentuankiet trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 10-04-2013, 08:56 AM
  3. Trả lời: 10
    Bài viết cuối: 26-02-2013, 09:19 AM
  4. Làm sao truyền giá trị từ winform sang webform và lấy giá trị trả về cho winform
    Gửi bởi dl_kidder trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 18-12-2012, 10:10 PM
  5. Lấy dữ liệu từ listbox sang textbox trong webform như thế nào?
    Gửi bởi prosiden trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 19-11-2011, 01:19 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn