यह ध्यान रखना महत्वपूर्ण है कि .NET कोर में डेटासेट, डेटाटेबल और संबंधित ऑब्जेक्ट्स नहीं हैं। लेकिन हमारे पास कनेक्शन, कमांड, पैरामीटर, डेटा रीडर और अन्य संबंधित ऑब्जेक्ट्स जैसी सभी मूल विशेषताएं हैं।
SQL सर्वर डेटाबेस प्रदाता के माध्यम से SQL सर्वर से कनेक्टिविटी को सरल बनाने के लिए आप निम्न कॉल का उपयोग कर सकते हैं।
public class BaseDataAccess
{
protected string ConnectionString { get; set; }
public BaseDataAccess()
{
}
public BaseDataAccess(string connectionString)
{
this.ConnectionString = connectionString;
}
private SqlConnection GetConnection()
{
SqlConnection connection = new SqlConnection(this.ConnectionString);
if (connection.State != ConnectionState.Open)
connection.Open();
return connection;
}
protected DbCommand GetCommand(DbConnection connection, string commandText, CommandType commandType)
{
SqlCommand command = new SqlCommand(commandText, connection as SqlConnection);
command.CommandType = commandType;
return command;
}
protected SqlParameter GetParameter(string parameter, object value)
{
SqlParameter parameterObject = new SqlParameter(parameter, value != null ? value : DBNull.Value);
parameterObject.Direction = ParameterDirection.Input;
return parameterObject;
}
protected SqlParameter GetParameterOut(string parameter, SqlDbType type, object value = null, ParameterDirection parameterDirection = ParameterDirection.InputOutput)
{
SqlParameter parameterObject = new SqlParameter(parameter, type); ;
if (type == SqlDbType.NVarChar || type == SqlDbType.VarChar || type == SqlDbType.NText || type == SqlDbType.Text)
{
parameterObject.Size = -1;
}
parameterObject.Direction = parameterDirection;
if (value != null)
{
parameterObject.Value = value;
}
else
{
parameterObject.Value = DBNull.Value;
}
return parameterObject;
}
protected int ExecuteNonQuery(string procedureName, List<DbParameter> parameters, CommandType commandType = CommandType.StoredProcedure)
{
int returnValue = -1;
try
{
using (SqlConnection connection = this.GetConnection())
{
DbCommand cmd = this.GetCommand(connection, procedureName, commandType);
if (parameters != null && parameters.Count > 0)
{
cmd.Parameters.AddRange(parameters.ToArray());
}
returnValue = cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
//LogException("Failed to ExecuteNonQuery for " + procedureName, ex, parameters);
throw;
}
return returnValue;
}
protected object ExecuteScalar(string procedureName, List<SqlParameter> parameters)
{
object returnValue = null;
try
{
using (DbConnection connection = this.GetConnection())
{
DbCommand cmd = this.GetCommand(connection, procedureName, CommandType.StoredProcedure);
if (parameters != null && parameters.Count > 0)
{
cmd.Parameters.AddRange(parameters.ToArray());
}
returnValue = cmd.ExecuteScalar();
}
}
catch (Exception ex)
{
//LogException("Failed to ExecuteScalar for " + procedureName, ex, parameters);
throw;
}
return returnValue;
}
protected DbDataReader GetDataReader(string procedureName, List<DbParameter> parameters, CommandType commandType = CommandType.StoredProcedure)
{
DbDataReader ds;
try
{
DbConnection connection = this.GetConnection();
{
DbCommand cmd = this.GetCommand(connection, procedureName, commandType);
if (parameters != null && parameters.Count > 0)
{
cmd.Parameters.AddRange(parameters.ToArray());
}
ds = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
}
catch (Exception ex)
{
//LogException("Failed to GetDataReader for " + procedureName, ex, parameters);
throw;
}
return ds;
}
}
अधिक जानकारी और उदाहरण के लिए लेख निम्नलिखित का संदर्भ लें: http://www.ijz.today/2016/09/net-core-10-connecting-sql-server.html
स्रोत
2016-09-10 17:54:59
क्या आपने इसे .NET कोर प्रोजेक्ट में उपयोग करने का प्रयास किया है? ऐसा करने के लिए अनुसंधान के सबसे स्पष्ट पहले टुकड़े की तरह लगता है। –
मैंने पहले से ही किया है, मैं संकलित नहीं कर सकता क्योंकि "SqlDataAdapter नहीं मिला"। जाहिर है System.Data .NET कोर प्रोजेक्ट में उपलब्ध नहीं है। दो विकल्प हैं: वेब फ्रेम .NET कोर कोर फ्रेमवर्क का उपयोग करते हुए, और .NET Framework का उपयोग कर एक और वेब अनुप्रयोग .NET कोर। जब मैं पहली बार चुनता हूं तो मुझे वह समस्या मिली। –
वैसे यह निर्भरता जोड़ने के बिना उपलब्ध नहीं होगा - लेकिन आपको यह देखने की कोशिश करनी चाहिए कि कोई .NET कोर संगत निर्भरता है जिसका आप उपयोग कर सकते हैं ... –