📄 sqliteparameter.cs
字号:
/********************************************************
* ADO.NET 2.0 Data Provider for SQLite Version 3.X
* Written by Robert Simpson (robert@blackcastlesoft.com)
*
* Released to the public domain, use at your own risk!
********************************************************/
namespace System.Data.SQLite
{
using System;
using System.Data;
using System.Data.Common;
using System.ComponentModel;
/// <summary>
/// SQLite implementation of DbParameter.
/// </summary>
public sealed class SQLiteParameter : DbParameter, ICloneable
{
/// <summary>
/// The data type of the parameter
/// </summary>
internal int _dbType;
/// <summary>
/// The version information for mapping the parameter
/// </summary>
private DataRowVersion _rowVersion;
/// <summary>
/// The value of the data in the parameter
/// </summary>
private Object _objValue;
/// <summary>
/// The source column for the parameter
/// </summary>
private string _sourceColumn;
/// <summary>
/// The column name
/// </summary>
private string _parameterName;
/// <summary>
/// The data size, unused by SQLite
/// </summary>
private int _dataSize;
private bool _nullable;
private bool _nullMapping;
/// <summary>
/// Default constructor
/// </summary>
public SQLiteParameter()
: this(null, (DbType)(-1), 0, null, DataRowVersion.Current)
{
}
/// <summary>
/// Constructs a named parameter given the specified parameter name
/// </summary>
/// <param name="parameterName">The parameter name</param>
public SQLiteParameter(string parameterName)
: this(parameterName, (DbType)(-1), 0, null, DataRowVersion.Current)
{
}
/// <summary>
/// Constructs a named parameter given the specified parameter name and initial value
/// </summary>
/// <param name="parameterName">The parameter name</param>
/// <param name="value">The initial value of the parameter</param>
public SQLiteParameter(string parameterName, object value)
: this(parameterName, (DbType)(-1), 0, null, DataRowVersion.Current)
{
Value = value;
}
/// <summary>
/// Constructs a named parameter of the specified type
/// </summary>
/// <param name="parameterName">The parameter name</param>
/// <param name="dbType">The datatype of the parameter</param>
public SQLiteParameter(string parameterName, DbType dbType)
: this(parameterName, dbType, 0, null, DataRowVersion.Current)
{
}
/// <summary>
/// Constructs a named parameter of the specified type and source column reference
/// </summary>
/// <param name="parameterName">The parameter name</param>
/// <param name="dbType">The data type</param>
/// <param name="sourceColumn">The source column</param>
public SQLiteParameter(string parameterName, DbType dbType, string sourceColumn)
: this(parameterName, dbType, 0, sourceColumn, DataRowVersion.Current)
{
}
/// <summary>
/// Constructs a named parameter of the specified type, source column and row version
/// </summary>
/// <param name="parameterName">The parameter name</param>
/// <param name="dbType">The data type</param>
/// <param name="sourceColumn">The source column</param>
/// <param name="rowVersion">The row version information</param>
public SQLiteParameter(string parameterName, DbType dbType, string sourceColumn, DataRowVersion rowVersion)
: this(parameterName, dbType, 0, sourceColumn, rowVersion)
{
}
/// <summary>
/// Constructs an unnamed parameter of the specified data type
/// </summary>
/// <param name="dbType">The datatype of the parameter</param>
public SQLiteParameter(DbType dbType)
: this(null, dbType, 0, null, DataRowVersion.Current)
{
}
/// <summary>
/// Constructs an unnamed parameter of the specified data type and sets the initial value
/// </summary>
/// <param name="dbType">The datatype of the parameter</param>
/// <param name="value">The initial value of the parameter</param>
public SQLiteParameter(DbType dbType, object value)
: this(null, dbType, 0, null, DataRowVersion.Current)
{
Value = value;
}
/// <summary>
/// Constructs an unnamed parameter of the specified data type and source column
/// </summary>
/// <param name="dbType">The datatype of the parameter</param>
/// <param name="sourceColumn">The source column</param>
public SQLiteParameter(DbType dbType, string sourceColumn)
: this(null, dbType, 0, sourceColumn, DataRowVersion.Current)
{
}
/// <summary>
/// Constructs an unnamed parameter of the specified data type, source column and row version
/// </summary>
/// <param name="dbType">The data type</param>
/// <param name="sourceColumn">The source column</param>
/// <param name="rowVersion">The row version information</param>
public SQLiteParameter(DbType dbType, string sourceColumn, DataRowVersion rowVersion)
: this(null, dbType, 0, sourceColumn, rowVersion)
{
}
/// <summary>
/// Constructs a named parameter of the specified type and size
/// </summary>
/// <param name="parameterName">The parameter name</param>
/// <param name="parameterType">The data type</param>
/// <param name="parameterSize">The size of the parameter</param>
public SQLiteParameter(string parameterName, DbType parameterType, int parameterSize)
: this(parameterName, parameterType, parameterSize, null, DataRowVersion.Current)
{
}
/// <summary>
/// Constructs a named parameter of the specified type, size and source column
/// </summary>
/// <param name="parameterName">The name of the parameter</param>
/// <param name="parameterType">The data type</param>
/// <param name="parameterSize">The size of the parameter</param>
/// <param name="sourceColumn">The source column</param>
public SQLiteParameter(string parameterName, DbType parameterType, int parameterSize, string sourceColumn)
: this(parameterName, parameterType, parameterSize, sourceColumn, DataRowVersion.Current)
{
}
/// <summary>
/// Constructs a named parameter of the specified type, size, source column and row version
/// </summary>
/// <param name="parameterName">The name of the parameter</param>
/// <param name="parameterType">The data type</param>
/// <param name="parameterSize">The size of the parameter</param>
/// <param name="sourceColumn">The source column</param>
/// <param name="rowVersion">The row version information</param>
public SQLiteParameter(string parameterName, DbType parameterType, int parameterSize, string sourceColumn, DataRowVersion rowVersion)
{
_parameterName = parameterName;
_dbType = (int)parameterType;
_sourceColumn = sourceColumn;
_rowVersion = rowVersion;
_objValue = null;
_dataSize = parameterSize;
_nullMapping = false;
_nullable = true;
}
private SQLiteParameter(SQLiteParameter source)
: this(source.ParameterName, (DbType)source._dbType, 0, source.Direction, source.IsNullable, 0, 0, source.SourceColumn, source.SourceVersion, source.Value)
{
_nullMapping = source._nullMapping;
}
/// <summary>
/// Constructs a named parameter of the specified type, size, source column and row version
/// </summary>
/// <param name="parameterName">The name of the parameter</param>
/// <param name="parameterType">The data type</param>
/// <param name="parameterSize">The size of the parameter</param>
/// <param name="direction">Only input parameters are supported in SQLite</param>
/// <param name="isNullable">Ignored</param>
/// <param name="precision">Ignored</param>
/// <param name="scale">Ignored</param>
/// <param name="sourceColumn">The source column</param>
/// <param name="rowVersion">The row version information</param>
/// <param name="value">The initial value to assign the parameter</param>
#if !PLATFORM_COMPACTFRAMEWORK
[EditorBrowsable(EditorBrowsableState.Advanced)]
#endif
public SQLiteParameter(string parameterName, DbType parameterType, int parameterSize, ParameterDirection direction, bool isNullable, byte precision, byte scale, string sourceColumn, DataRowVersion rowVersion, object value)
: this(parameterName, parameterType, parameterSize, sourceColumn, rowVersion)
{
Direction = direction;
IsNullable = isNullable;
Value = value;
}
/// <summary>
/// Constructs a named parameter, yet another flavor
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -