1

私は学生で、プログラミングはまったくの初心者です。ASP.NET と C# を使用するタスクを与えられましたが、どちらも教わることはありませんでした。計画は、自分自身を教えることを学ぶことです。

私が立ち往生しているタスクは、CSV ファイルからキャンパス周辺の昨年の部屋予約の SQL Server データベースに Web サイトをインポートすることです。

テーブルには通常、次の列があります。

        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)

Importボタンを押すと、.csvファイルを(固定ディレクトリに固定名で)読み込んで"1,2,3"comma separating the fields [delimiter]SQL Serverデータベースにインポートします。次に、データ グリッドにもそれを表示します。

このようなもの:

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

Visual Studio でコードがビルドされますが、[インポート] ボタンを押しても何も起こりません。私はこのコードを何日も実験してきましたが、間違いがどこにあるかを特定することはできません. 明日締め切りなので、足りないところを教えていただけるとありがたいです。

これが私のコードです:

aspx:

<!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>");
                }
            }
        }
    }
}        

前もって感謝します。どんな形の助けも大歓迎です。

4

1 に答える 1

0

あなたは正しい軌道に乗っているようです。[インポート] ボタンは、CSV クラスの Import_button_Click メソッドに接続する必要があるときに、.aspx ページの空の Import_button_Click メソッドに接続されているように見えます。最初のメソッドは空なので、何も起こりません。

于 2013-05-13T03:04:08.700 に答える