Я все еще новичок в ASP.net, и я учусь, как вызывать классы. Я просмотрел учебники, но не все они относятся к ASP.net 4.0, поэтому я не уверен, что я должен их применять.Класс вызова из кода позади
Прямо сейчас, я пытаюсь подключиться к моей базе данных SQL. Мой файл webconfig был настроен с помощью connectionstring «dbConnectionString» и работает правильно, когда я тестировал его с помощью GridView. Теперь я хотел бы получить доступ к базе данных из кода.
Я видел некоторые способы достичь этого, но я бы хотел, чтобы был наиболее эффективным, доступным способом. Я попытался принять ответ, указанный здесь: How to create sql connection with c# code behind, access the sql server then conditionally redirect? однако, я получаю сообщение об ошибке.
Я делаю это с C# как веб-сайт, а не веб-приложение. Вот мой код позади для 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;
}
}
}
Как вы можете видеть, я не написал ни код для фактического использования класса, но «использование 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?)
Как я еще новичок, я не уверен, куда идти отсюда. Кажется, я включил все, что содержалось в ответе на странице, с которой я связан выше. Что еще и я не хватает?
Edit: Я прочитал этот пост о подобной проблеме: asp.NET 2.0 Web Site Can't Access Classes in App_Code Может ли это быть потому, что я делаю веб-сайт, а не веб-приложения, так что папка App_Code обрабатывается по-другому, когда я FTP файлы снова?
'using SqlComm;' не должно быть 'using SqlDataClient' ..? – MethodMan
Возможно, вам нужно установить действие сборки для компиляции в файле .cs в папке App_Code. Кроме того, вы должны иметь доступ к классу и его методам напрямую. –
@Tim Schmelter мне нужно сделать это для веб-сайта, я думал, что это только для веб-приложений?Я просмотрел инструкции о том, как это сделать в Visual Web Developer и, похоже, не имеет такой опции, когда я нажимаю правой кнопкой мыши файл – Cineno28