私はまだ ASP.net を使い始めたばかりで、クラスを呼び出す方法を学んでいます。チュートリアルを探しましたが、すべてが ASP.net 4.0 に固有のものではないため、それらを適用する必要があるかどうかわかりません。
現在、SQL データベースに接続しようとしています。私の webconfig ファイルは、接続文字列 "dbConnectionString" でセットアップされており、GridViews でテストしたところ、正しく動作しています。私が今やりたいことは、コード ビハインドからデータベースにアクセスすることです。
私はこれを達成するためのいくつかの方法を見てきましたが、私は最も効率的で復活可能な方法を望んでいます。ここにリストされている回答を採用しようとしました。背後にあるC#コードとSQL接続を作成する方法、SQLサーバーにアクセスしてから条件付きリダイレクト?ただし、エラーが発生しています。
Web アプリケーションではなく、C# を Web サイトとして使用しています。Login.aspx.cs のコード ビハインドは次のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SqlComm; // Is this how I connect to my class from this page????
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
//no code written yet
}
}
}
App_Code フォルダー内の私のクラス、ファイル名 SQLComm.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Web;
/// <summary>
/// SQL Query class
/// </summary>
public class SqlComm
{
// Connection string
static string DatabaseConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["dbConnectionString"].ConnectionString;
// Execute sql command with no value to return
public static void SqlExecute(string sql)
{
using (SqlConnection conn = new SqlConnection(DatabaseConnectionString))
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
}
}
// Execute SQL query and return a value
public static object SqlReturn(string sql)
{
using (SqlConnection conn = new SqlConnection(PjSql.dbcs()))
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
object result = (object)cmd.ExecuteScalar();
return result;
}
}
// Retrieve an entire table or part of it
public static DataTable SqlDataTable(string sql)
{
using (SqlConnection conn = new SqlConnection(DatabaseConnectionString))
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Connection.Open();
DataTable TempTable = new DataTable();
TempTable.Load(cmd.ExecuteReader());
return TempTable;
}
}
// Execute a stored procedure with 1 parameter
// Returning a value or just executing with no returns
public static object SqlStoredProcedure1Param(string StoredProcedure, string PrmName1, object Param1)
{
using (SqlConnection conn = new SqlConnection(DatabaseConnectionString))
{
SqlCommand cmd = new SqlCommand(StoredProcedure, conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter(PrmName1, Param1.ToString()));
cmd.Connection.Open();
object obj = new object();
obj = cmd.ExecuteScalar();
return obj;
}
}
}
ご覧のとおり、このクラスを実際に使用するためのコードはまだ書いていませんが、"using SQLComm;" 行自体が私にこのエラーを与えています:
Compiler Error Message: CS0246: The type or namespace name 'SqlComm' could not be found (are you missing a using directive or an assembly reference?)
私はまだ新しいので、ここからどこへ行けばいいのかわかりません。上記でリンクしたページの回答に含まれるすべてを含めたようです。他に何が欠けていますか?
編集: 同様の問題に関するこの投稿を読みました: asp.NET 2.0 Web サイトは App_Code のクラスにアクセスできませ んファイルは?