2013-05-13 1 views
1

저는 학생이기 때문에 프로그래밍에 익숙하지 않으며 ASP를 사용하는 작업이 주어졌습니다. NET 및 C#도 배울 필요가 없습니다. 계획은 우리 자신을 가르치는 법을 배우는 것입니다.asp.net 및 C#을 사용하여 CSV 파일을 SQL Server 데이터베이스로 가져 오려고합니다. 내가 누락 된 내용을 찾을 수 없습니다.

내가 맡은 작업은 CSV 파일에서 캠퍼스 주변 작년 방의 SQL Server 데이터베이스로 웹 사이트를 가져 오는 것입니다.

표는 일반적으로 다음과 같은 열이 내 코드에서

 Request_ID; 
     Priority; 
     Module_ID; 
     Day; 
     Start_Time; 
     Length; 
     Park; 
     Students; 
     Room_Code; 
     Status; 
     Semester_ID; 
     Linked_Request; 
     Week_1; 
     Week_2; 
     Week_3; 
     Week_4; 
     Week_5; 
     Week_6; 
     Week_7; 
     Week_8; 
     Week_9; 
     Week_10; 
     Week_11; 
     Week_12; 
     Week_13; 
     Week_14; 
     Week_15;) 

, 나는 그것이 우선 만 3 열 (Request_ID,Priority,Module)을 작동하게하려고합니다. comma separating the fields [delimiter] - - 그리고 SQL Server 데이터베이스로 가져올 나는 Import 버튼을 누르면

, 나는 그것 (고정 디렉토리에 고정 된 이름) 예 "1,2,3".csv 파일을 읽고 싶어. 그런 다음 데이터 그리드에도 표시해야합니다. 이 같은

뭔가 :

http://tinypic.com/r/50lchu/5

비주얼 스튜디오 내 코드를 구축 할 것입니다,하지만 난 "가져 오기"버튼을 누르면 아무 일도 발생하지 않습니다. 이 코드를 사용하여 며칠 동안 실험 해 보았습니다. 실수가 어디인지 정확히 알 수 없습니다. 내일 마감일이 있기 때문에 누군가 내가 무엇을 놓쳤는 지 말할 수 있다면 감사 할 것입니다.

여기 내 코드입니다 :

영문 :

<!DOCTYPE html> 
<script runat="server"> 

    Protected Sub Import_button_Click(sender As Object, e As EventArgs) 

    End Sub 

    Protected Sub Page_Load(sender As Object, e As EventArgs) 

    End Sub 
</script> 
<html lang="en"> 

    <head> 
    <meta charset="utf-8"> 

    <title>Timetabling Support Website</title> 

    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 

    <!-- Loading Bootstrap --> 
    <link href="css/bootstrap.css" rel="stylesheet"> 

    <!-- Loading Flat UI --> 
    <link href="css/flat-ui.css" rel="stylesheet"> 

    <!-- Loading Unsemantic --> 
    <link href="css/unsemantic-grid-responsive.css" rel="stylesheet"> 

    <!-- Loading Personalized Style --> 
    <link href="css/style.css" rel="stylesheet"> 
    <link rel="shortcut icon" href="images/favicon.ico"> 


    <!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. --> 
    <!--[if lt IE 9]> 
     <script src="js/html5shiv.js"></script> 
    <![endif]--> 
    </head> 

    <body> 
     <form id="form1" runat="server"> 
    <div class="grid-container"> 

     <div class="header grid-100"> 
     <div class="banner grid-70"> 
      <img src="images/banner3.png" id="banner" alt="Loughborough Uni Logo" /> 
     </div> 
     <div class="logout grid-30"> 
      <p id="logout"> Welcome, Computer Science Timetabler. | <a href="index.html">Logout</a></p> 
     </div> 
     </div> 


     <div class="navbar navbar-inverse"> 
      <div class="navbar-inner"> 
      <ul class="nav"> 
       <li> 
       <a href="home.html"> 
        Home 
       </a> 
       </li> 
       <li> 
       <a href="#"> 
        Requests 
       </a> 
       <ul> 
        <li> 
        <a href="request_new.html">New Request</a> 
        </li> 
        <li> 
        <a href="request_import.html">Import Requests</a> 
        </li> 
        <li> 
        <a href="request_current.html">Current Requests</a> 
        </li> 
        <li> 
        <a href="request_adhoc.html">Ad-Hoc Request</a> 
        </li> 
       </ul> <!-- /Sub menu --> 
       </li> 
       <li> 
       <a href="room_availability.html"> 
        Room Availability 
       </a> 
       </li> 
       <li> 
       <a href="#"> 
        History 
       </a> 
       <ul> 
        <li> 
        <a href="#">Semester 1</a> 
        <ul> 
         <li> 
         <a href="history_s1priority.html">Priority Round</a> 
         </li> 
         <li> 
         <a href="history_s1round1.html">Round 1</a> 
         </li> 
         <li> 
         <a href="history_current.html">Round 2</a> 
         </li> 
         <li> 
         <a href="history.html">Final Allocations</a> 
         </li> 
        </ul> <!-- /Sub menu --> 
        </li> 
        <li> 
        <a href="#">Semester 2</a> 
        <ul> 
         <li> 
         <a href="history.html">Priority Round</a> 
         </li> 
         <li> 
         <a href="history.html">Round 1</a> 
         </li> 
         <li> 
         <a href="history.html">Round 2</a> 
         </li> 
         <li> 
         <a href="history.html">Final Allocations</a> 
         </li> 
        </ul> <!-- /Sub menu --> 
        </li> 
       </ul> <!-- /Sub menu --> 
       </li> 
       <li> 
       <a href="#"> 
        Maintenance 
       </a> 
       <ul> 
        <li> 
        <a href="module_add.html">Add Module</a> 
        </li> 
        <li> 
        <a href="module_edit.html">Edit Module</a> 
        </li> 
       </ul> <!-- /Sub menu --> 
       </li> 
       <li> 
       <a href="help.html"> 
        Help 
       </a> 
       </li> 
      </ul> 
      </div><!--/.nav-collapse --> 
     </div> 

     <div class="content center"> 
      <h1>Import Request 
      <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False"> 
       <Columns> 
        <asp:BoundField DataField="Request_ID" HeaderText="Request_ID" SortExpression="Request_ID" /> 
        <asp:BoundField DataField="Priority" HeaderText="Priority" SortExpression="Priority" /> 
        <asp:BoundField DataField="Module_ID" HeaderText="Module_ID" SortExpression="Module_ID" /> 
       </Columns> 


      </asp:GridView> 

      </h1> 
     <asp:Button ID="Button1" runat="server" Text="Import" 
       OnClick="Import_button_Click" style="height: 26px"/> 


      </div> 

     <div class="grid-100 footer"> 
     <p>Copyright © 2013 Team 3 Timetabling Support Website</p> 
     </div> 

    </div> <!-- /container --> 


     <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
      ConnectionString="<%$ ConnectionStrings:team03ConnectionString %>" 
      SelectCommand="SELECT * FROM [Archive]"></asp:SqlDataSource> 
    <!-- Load JS here for greater good =============================--> 
    <script src="js/jquery-1.8.2.min.js"></script> 
    <script src="js/jquery-ui-1.10.0.custom.min.js"></script> 
    <script src="js/jquery.dropkick-1.0.0.js"></script> 
    <script src="js/custom_checkbox_and_radio.js"></script> 
    <script src="js/custom_radio.js"></script> 
    <script src="js/jquery.tagsinput.js"></script> 
    <script src="js/bootstrap-tooltip.js"></script> 
    <script src="js/jquery.placeholder.js"></script> 
    <script src="http://vjs.zencdn.net/c/video.js"></script> 
    <script src="js/application.js"></script> 
    <!--[if lt IE 8]> 
     <script src="js/icon-font-ie7.js"></script> 
     <script src="js/icon-font-ie7-24.js"></script> 
    <![endif]--> 
     </form> 
    </body> 
</html> 

C 번호 : 사전에

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using Microsoft.VisualBasic.FileIO; 
using System.Data.SqlClient; 

namespace ImportPage 
{ 

    public class CSVFile 
    { 

     public int Request_ID { get; set; } 
     public int Priority { get; set; } 
     public int Module_ID { get; set; } 
     //... 

    } 


    public class CSV 
    { 


     public string GetConnectionString() 
     { return System.Configuration.ConfigurationManager.ConnectionStrings["team03ConnectionString"].ConnectionString; } 


     protected void Import_button_Click(object sender, EventArgs e) 
     { 
      //String request_ID2 = ""; 

      List<CSVFile> entries = new List<CSVFile>(); 

      using (TextFieldParser parser = new TextFieldParser(@"PreviousYear.txt")) 
      { 

       parser.TextFieldType = FieldType.Delimited; 
       parser.Delimiters = new string[] { "," }; 
       string[] fields; 

       while (!parser.EndOfData) 
       { 
        fields = parser.ReadFields(); 
        entries.Add(new CSVFile() 
        { 
         Request_ID = Convert.ToInt32(fields[0]), 
         Priority = Convert.ToInt32(fields[1]), 
         Module_ID = Convert.ToInt32(fields[2]) 
         //... 

        }); 
       } 

      } 





      using (SqlConnection conn = new SqlConnection(GetConnectionString())) 
      { 


       string sql = "Insert INTO Requests (Priority, Module_ID) OUTPUT INSERTED.Request_ID VALUES (@Priority, @Module_ID)"; 

       try 
       { 

        conn.Open(); 

        foreach (CSVFile entry in entries) 
        { 

         using (SqlCommand cmd = new SqlCommand(sql, conn)) 
         { 

          cmd.Parameters.AddWithValue("@Priority", entry.Priority); 
          cmd.Parameters.AddWithValue("@Module_ID", entry.Module_ID); 

          // ... 
          cmd.ExecuteNonQuery(); 
         } 
        } 
       } 
       catch (System.Data.SqlClient.SqlException ex) 
       { 
        string msg = "Insert Error:"; 
        msg += ex.Message; 
        throw new Exception(msg); 
       } 
       catch (FormatException ee) 
       { 
        System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE='JavaScript'>alert('Please enter a valid value');</SCRIPT>"); 
       } 
       catch (System.Exception eeee) 
       { 
        System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE='JavaScript'>alert('System Exception');</SCRIPT>"); 
       } 
      } 
     } 
    } 
}   

감사합니다. 도움의 어떤 모양든지 중대하게 평가 될 것입니다.

답변

0

제대로 된 것 같습니다. 가져 오기 단추는 CSV 클래스의 Import_button_Click 메서드에 연결할 때 .aspx 페이지의 빈 Import_button_Click 메서드에 연결되어있는 것처럼 보입니다. 첫 번째 방법은 비어 있으므로 아무 것도 발생하지 않습니다.

관련 문제