2

Excel を読み取って Web ページにバインドしようとしていますが、これが私の初期コードです。ブラウザで実行すると、コードが表示されるだけで実行されません。chtml として保存されたコードは次のとおりです。

@{

}

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Excel Read Test</title>
</head>
<body>    
        string ExcelFile = Server.MapPath("App_Data/Pending_Requests.xls");
       string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ExcelFile + ";Extended Properties=Excel 8.0;";

        using (OleDbConnection conn = new OleDbConnection(connString)) 
            { 
            using (OleDbCommand cmd = new OleDbCommand()) 
            { 
            cmd.Connection = conn; 
            cmd.CommandText = "SELECT * FROM [EAST]"; 
            conn.Open(); 
            OleDbDataReader dr = cmd.ExecuteReader(); 
            GridView1.DataSource = dr; 
            GridView1.DataBind(); 
            conn.Close(); 
            } 
            }
   </body>

このコードを実行するにはどうすればよいですか?

4

1 に答える 1

1

コードはデータをGridViewにバインドしようとしますが、これらはWebフォームでのみ使用できます。cshtmlファイルは、 Webページと呼ばれる別の開発モデルです。WebMatrixは、Webページを開発するために設計されています。Webページでコードを書くときは、Razor構文を使用する必要があります。GridViewに相当するWebページはWebGridです。これは、cshtmlファイルでコードを機能させる方法です。

@{
     var connString = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=|DataDirectory|Pending_Requests.xls;Extended Properties=Excel 8.0;";
     var provider = "System.Data.OleDb";
     var sql =  "SELECT * FROM [EAST$]";
     var db = Database.OpenConnectionString(connString, provider);
     var data = db.Query(sql);
     var grid = new WebGrid(data);
}

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Excel Read Test</title>
</head>
    <body>    
       @grid.GetHtml()
    </body>
</html>
于 2012-11-12T20:16:29.050 に答える