mirror of
https://git.teknik.io/Teknikode/Teknik.git
synced 2023-08-02 14:16:22 +02:00
Updated Nuget Packages.
Optimized Blacklist module to not use locks.
This commit is contained in:
parent
28e6c34748
commit
3b17dd9e76
@ -57,12 +57,10 @@
|
|||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
|
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
|
||||||
@ -77,8 +75,7 @@
|
|||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Newtonsoft.Json.10.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<configSections>
|
<configSections>
|
||||||
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
|
|
||||||
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||||
</configSections>
|
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
|
||||||
<connectionStrings configSource="ConnectionStrings.config" />
|
<connectionStrings configSource="ConnectionStrings.config" />
|
||||||
<startup>
|
<startup>
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||||
@ -30,11 +30,11 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="CommandLineParser" version="1.9.71" targetFramework="net452" />
|
<package id="CommandLineParser" version="1.9.71" targetFramework="net452" />
|
||||||
<package id="EntityFramework" version="6.1.3" targetFramework="net452" />
|
<package id="EntityFramework" version="6.2.0" targetFramework="net462" />
|
||||||
<package id="GitVersionTask" version="3.6.5" targetFramework="net462" developmentDependency="true" />
|
<package id="GitVersionTask" version="3.6.5" targetFramework="net462" developmentDependency="true" />
|
||||||
<package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net452" />
|
<package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net452" />
|
||||||
<package id="Microsoft.AspNet.Identity.EntityFramework" version="2.2.1" targetFramework="net452" />
|
<package id="Microsoft.AspNet.Identity.EntityFramework" version="2.2.1" targetFramework="net452" />
|
||||||
<package id="nClam" version="2.0.6.0" targetFramework="net462" />
|
<package id="nClam" version="2.0.6.0" targetFramework="net462" />
|
||||||
<package id="Newtonsoft.Json" version="10.0.1" targetFramework="net462" />
|
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net462" />
|
||||||
</packages>
|
</packages>
|
@ -33,56 +33,11 @@ namespace Teknik.Modules
|
|||||||
context.BeginRequest += onBeginRequest;
|
context.BeginRequest += onBeginRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Referrer Info
|
public static StringDictionary GetFileData(HttpContext context, string key, string filePath)
|
||||||
private const string BLOCKEDREFERRERKEY = "BlockedReferrer";
|
|
||||||
private static string referrerFileName = null;
|
|
||||||
private static object referrerFileNameObj = new object();
|
|
||||||
|
|
||||||
public static string GetReferrerFilePath()
|
|
||||||
{
|
|
||||||
if (referrerFileName != null)
|
|
||||||
return referrerFileName;
|
|
||||||
lock (referrerFileNameObj)
|
|
||||||
{
|
|
||||||
if (referrerFileName == null)
|
|
||||||
{
|
|
||||||
Config config = Config.Load();
|
|
||||||
referrerFileName = config.ReferrerBlacklistFile;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return referrerFileName;
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region IP Info
|
|
||||||
private const string BLOCKEDIPKEY = "BlockedIP";
|
|
||||||
private static string ipFileName = null;
|
|
||||||
private static object ipFileNameObj = new object();
|
|
||||||
|
|
||||||
public static string GetIPFilePath()
|
|
||||||
{
|
|
||||||
if (ipFileName != null)
|
|
||||||
return ipFileName;
|
|
||||||
lock (ipFileNameObj)
|
|
||||||
{
|
|
||||||
if (ipFileName == null)
|
|
||||||
{
|
|
||||||
Config config = Config.Load();
|
|
||||||
ipFileName = config.IPBlacklistFile;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ipFileName;
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
public static StringDictionary GetFileData(HttpContext context, string key, Func<string> fn)
|
|
||||||
{
|
{
|
||||||
StringDictionary data = (StringDictionary)context.Cache[key];
|
StringDictionary data = (StringDictionary)context.Cache[key];
|
||||||
if (data == null)
|
if (data == null)
|
||||||
{
|
{
|
||||||
string filePath = fn();
|
|
||||||
data = GetFileLines(filePath);
|
data = GetFileLines(filePath);
|
||||||
context.Cache.Insert(key, data, new CacheDependency(filePath));
|
context.Cache.Insert(key, data, new CacheDependency(filePath));
|
||||||
}
|
}
|
||||||
@ -118,6 +73,8 @@ namespace Teknik.Modules
|
|||||||
|
|
||||||
if (app != null)
|
if (app != null)
|
||||||
{
|
{
|
||||||
|
Config config = Config.Load();
|
||||||
|
|
||||||
bool blocked = false;
|
bool blocked = false;
|
||||||
string blockReason = string.Empty;
|
string blockReason = string.Empty;
|
||||||
|
|
||||||
@ -127,7 +84,7 @@ namespace Teknik.Modules
|
|||||||
string IPAddr = app.Context.Request.ServerVariables["REMOTE_ADDR"];
|
string IPAddr = app.Context.Request.ServerVariables["REMOTE_ADDR"];
|
||||||
if (!string.IsNullOrEmpty(IPAddr))
|
if (!string.IsNullOrEmpty(IPAddr))
|
||||||
{
|
{
|
||||||
StringDictionary badIPs = GetFileData(app.Context, BLOCKEDIPKEY, GetIPFilePath);
|
StringDictionary badIPs = GetFileData(app.Context, "BlockedIPs", config.IPBlacklistFile);
|
||||||
|
|
||||||
blocked |= (badIPs != null && badIPs.ContainsKey(IPAddr));
|
blocked |= (badIPs != null && badIPs.ContainsKey(IPAddr));
|
||||||
blockReason = $"This IP address ({IPAddr}) has been blacklisted. If you feel this is in error, please contact support@teknik.io for assistance.";
|
blockReason = $"This IP address ({IPAddr}) has been blacklisted. If you feel this is in error, please contact support@teknik.io for assistance.";
|
||||||
@ -141,7 +98,7 @@ namespace Teknik.Modules
|
|||||||
string referrer = app.Context.Request.UrlReferrer?.Host;
|
string referrer = app.Context.Request.UrlReferrer?.Host;
|
||||||
if (!string.IsNullOrEmpty(referrer))
|
if (!string.IsNullOrEmpty(referrer))
|
||||||
{
|
{
|
||||||
StringDictionary badReferrers = GetFileData(app.Context, BLOCKEDREFERRERKEY, GetReferrerFilePath);
|
StringDictionary badReferrers = GetFileData(app.Context, "BlockedReferrers", config.ReferrerBlacklistFile);
|
||||||
|
|
||||||
blocked |= (badReferrers != null && badReferrers.ContainsKey(referrer));
|
blocked |= (badReferrers != null && badReferrers.ContainsKey(referrer));
|
||||||
blockReason = $"This referrer ({referrer}) has been blacklisted. If you feel this is in error, please contact support@teknik.io for assistance.";
|
blockReason = $"This referrer ({referrer}) has been blacklisted. If you feel this is in error, please contact support@teknik.io for assistance.";
|
||||||
|
Binary file not shown.
4
Teknik/Scripts/jquery-3.1.1.min.js
vendored
4
Teknik/Scripts/jquery-3.1.1.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
Teknik/Scripts/jquery-3.1.1.slim.min.js
vendored
4
Teknik/Scripts/jquery-3.1.1.slim.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2670
Teknik/Scripts/jquery-3.3.1.intellisense.js
vendored
Normal file
2670
Teknik/Scripts/jquery-3.3.1.intellisense.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
2
Teknik/Scripts/jquery-3.3.1.min.js
vendored
Normal file
2
Teknik/Scripts/jquery-3.3.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
Teknik/Scripts/jquery-3.3.1.min.map
Normal file
1
Teknik/Scripts/jquery-3.3.1.min.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
2
Teknik/Scripts/jquery-3.3.1.slim.min.js
vendored
Normal file
2
Teknik/Scripts/jquery-3.3.1.slim.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
Teknik/Scripts/jquery-3.3.1.slim.min.map
Normal file
1
Teknik/Scripts/jquery-3.3.1.slim.min.map
Normal file
File diff suppressed because one or more lines are too long
9
Teknik/Scripts/jquery.signalR-2.2.1.min.js
vendored
9
Teknik/Scripts/jquery.signalR-2.2.1.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
|||||||
/* jquery.signalR.core.js */
|
/* jquery.signalR.core.js */
|
||||||
/*global window:false */
|
/*global window:false */
|
||||||
/*!
|
/*!
|
||||||
* ASP.NET SignalR JavaScript Library v2.2.1
|
* ASP.NET SignalR JavaScript Library v2.2.2
|
||||||
* http://signalr.net/
|
* http://signalr.net/
|
||||||
*
|
*
|
||||||
* Copyright (c) .NET Foundation. All rights reserved.
|
* Copyright (c) .NET Foundation. All rights reserved.
|
||||||
@ -951,6 +951,9 @@
|
|||||||
// Clear out our message buffer
|
// Clear out our message buffer
|
||||||
connection._.connectingMessageBuffer.clear();
|
connection._.connectingMessageBuffer.clear();
|
||||||
|
|
||||||
|
// Clean up this event
|
||||||
|
$(connection).unbind(events.onStart);
|
||||||
|
|
||||||
// Trigger the disconnect event
|
// Trigger the disconnect event
|
||||||
changeState(connection, connection.state, signalR.connectionState.disconnected);
|
changeState(connection, connection.state, signalR.connectionState.disconnected);
|
||||||
$(connection).triggerHandler(events.onDisconnect);
|
$(connection).triggerHandler(events.onDisconnect);
|
||||||
@ -2227,8 +2230,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ensure the iframe is where we left it
|
// Ensure the iframe is where we left it
|
||||||
if (connection.frame.parentNode === window.document.body) {
|
if (connection.frame.parentNode === window.document.documentElement) {
|
||||||
window.document.body.removeChild(connection.frame);
|
window.document.documentElement.removeChild(connection.frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
delete transportLogic.foreverFrame.connections[connection.frameId];
|
delete transportLogic.foreverFrame.connections[connection.frameId];
|
||||||
@ -2951,5 +2954,5 @@
|
|||||||
/*global window:false */
|
/*global window:false */
|
||||||
/// <reference path="jquery.signalR.core.js" />
|
/// <reference path="jquery.signalR.core.js" />
|
||||||
(function ($, undefined) {
|
(function ($, undefined) {
|
||||||
$.signalR.version = "2.2.1";
|
$.signalR.version = "2.2.2";
|
||||||
}(window.jQuery));
|
}(window.jQuery));
|
9
Teknik/Scripts/jquery.signalR-2.2.2.min.js
vendored
Normal file
9
Teknik/Scripts/jquery.signalR-2.2.2.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
Teknik/Scripts/jquery.validate-vsdoc.js
vendored
4
Teknik/Scripts/jquery.validate-vsdoc.js
vendored
@ -4,7 +4,7 @@
|
|||||||
* intended to be used only for design-time IntelliSense. Please use the
|
* intended to be used only for design-time IntelliSense. Please use the
|
||||||
* standard jQuery library for all production use.
|
* standard jQuery library for all production use.
|
||||||
*
|
*
|
||||||
* Comment version: 1.16.0
|
* Comment version: 1.17.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -15,7 +15,7 @@
|
|||||||
* for informational purposes only and are not the license terms under
|
* for informational purposes only and are not the license terms under
|
||||||
* which Microsoft distributed this file.
|
* which Microsoft distributed this file.
|
||||||
*
|
*
|
||||||
* jQuery Validation Plugin - v1.16.0 - 12/5/2016
|
* jQuery Validation Plugin - v1.17.0 - 12/5/2016
|
||||||
* https://github.com/jzaefferer/jquery-validation
|
* https://github.com/jzaefferer/jquery-validation
|
||||||
* Copyright (c) 2013 Jörn Zaefferer; Licensed MIT
|
* Copyright (c) 2013 Jörn Zaefferer; Licensed MIT
|
||||||
*
|
*
|
||||||
|
139
Teknik/Scripts/jquery.validate.js
vendored
139
Teknik/Scripts/jquery.validate.js
vendored
@ -1,9 +1,9 @@
|
|||||||
/*!
|
/*!
|
||||||
* jQuery Validation Plugin v1.16.0
|
* jQuery Validation Plugin v1.17.0
|
||||||
*
|
*
|
||||||
* http://jqueryvalidation.org/
|
* https://jqueryvalidation.org/
|
||||||
*
|
*
|
||||||
* Copyright (c) 2016 Jörn Zaefferer
|
* Copyright (c) 2017 Jörn Zaefferer
|
||||||
* Released under the MIT license
|
* Released under the MIT license
|
||||||
*/
|
*/
|
||||||
(function( factory ) {
|
(function( factory ) {
|
||||||
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
$.extend( $.fn, {
|
$.extend( $.fn, {
|
||||||
|
|
||||||
// http://jqueryvalidation.org/validate/
|
// https://jqueryvalidation.org/validate/
|
||||||
validate: function( options ) {
|
validate: function( options ) {
|
||||||
|
|
||||||
// If nothing is selected, return nothing; can't chain anyway
|
// If nothing is selected, return nothing; can't chain anyway
|
||||||
@ -44,9 +44,10 @@ $.extend( $.fn, {
|
|||||||
if ( validator.settings.onsubmit ) {
|
if ( validator.settings.onsubmit ) {
|
||||||
|
|
||||||
this.on( "click.validate", ":submit", function( event ) {
|
this.on( "click.validate", ":submit", function( event ) {
|
||||||
if ( validator.settings.submitHandler ) {
|
|
||||||
validator.submitButton = event.target;
|
// Track the used submit button to properly handle scripted
|
||||||
}
|
// submits later.
|
||||||
|
validator.submitButton = event.currentTarget;
|
||||||
|
|
||||||
// Allow suppressing validation by adding a cancel class to the submit button
|
// Allow suppressing validation by adding a cancel class to the submit button
|
||||||
if ( $( this ).hasClass( "cancel" ) ) {
|
if ( $( this ).hasClass( "cancel" ) ) {
|
||||||
@ -68,17 +69,22 @@ $.extend( $.fn, {
|
|||||||
}
|
}
|
||||||
function handle() {
|
function handle() {
|
||||||
var hidden, result;
|
var hidden, result;
|
||||||
if ( validator.settings.submitHandler ) {
|
|
||||||
if ( validator.submitButton ) {
|
|
||||||
|
|
||||||
// Insert a hidden input as a replacement for the missing submit button
|
// Insert a hidden input as a replacement for the missing submit button
|
||||||
|
// The hidden input is inserted in two cases:
|
||||||
|
// - A user defined a `submitHandler`
|
||||||
|
// - There was a pending request due to `remote` method and `stopRequest()`
|
||||||
|
// was called to submit the form in case it's valid
|
||||||
|
if ( validator.submitButton && ( validator.settings.submitHandler || validator.formSubmitted ) ) {
|
||||||
hidden = $( "<input type='hidden'/>" )
|
hidden = $( "<input type='hidden'/>" )
|
||||||
.attr( "name", validator.submitButton.name )
|
.attr( "name", validator.submitButton.name )
|
||||||
.val( $( validator.submitButton ).val() )
|
.val( $( validator.submitButton ).val() )
|
||||||
.appendTo( validator.currentForm );
|
.appendTo( validator.currentForm );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( validator.settings.submitHandler ) {
|
||||||
result = validator.settings.submitHandler.call( validator, validator.currentForm, event );
|
result = validator.settings.submitHandler.call( validator, validator.currentForm, event );
|
||||||
if ( validator.submitButton ) {
|
if ( hidden ) {
|
||||||
|
|
||||||
// And clean up afterwards; thanks to no-block-scope, hidden can be referenced
|
// And clean up afterwards; thanks to no-block-scope, hidden can be referenced
|
||||||
hidden.remove();
|
hidden.remove();
|
||||||
@ -112,7 +118,7 @@ $.extend( $.fn, {
|
|||||||
return validator;
|
return validator;
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/valid/
|
// https://jqueryvalidation.org/valid/
|
||||||
valid: function() {
|
valid: function() {
|
||||||
var valid, validator, errorList;
|
var valid, validator, errorList;
|
||||||
|
|
||||||
@ -133,13 +139,22 @@ $.extend( $.fn, {
|
|||||||
return valid;
|
return valid;
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/rules/
|
// https://jqueryvalidation.org/rules/
|
||||||
rules: function( command, argument ) {
|
rules: function( command, argument ) {
|
||||||
var element = this[ 0 ],
|
var element = this[ 0 ],
|
||||||
settings, staticRules, existingRules, data, param, filtered;
|
settings, staticRules, existingRules, data, param, filtered;
|
||||||
|
|
||||||
// If nothing is selected, return empty object; can't chain anyway
|
// If nothing is selected, return empty object; can't chain anyway
|
||||||
if ( element == null || element.form == null ) {
|
if ( element == null ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !element.form && element.hasAttribute( "contenteditable" ) ) {
|
||||||
|
element.form = this.closest( "form" )[ 0 ];
|
||||||
|
element.name = this.attr( "name" );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( element.form == null ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,9 +182,6 @@ $.extend( $.fn, {
|
|||||||
$.each( argument.split( /\s/ ), function( index, method ) {
|
$.each( argument.split( /\s/ ), function( index, method ) {
|
||||||
filtered[ method ] = existingRules[ method ];
|
filtered[ method ] = existingRules[ method ];
|
||||||
delete existingRules[ method ];
|
delete existingRules[ method ];
|
||||||
if ( method === "required" ) {
|
|
||||||
$( element ).removeAttr( "aria-required" );
|
|
||||||
}
|
|
||||||
} );
|
} );
|
||||||
return filtered;
|
return filtered;
|
||||||
}
|
}
|
||||||
@ -189,7 +201,6 @@ $.extend( $.fn, {
|
|||||||
param = data.required;
|
param = data.required;
|
||||||
delete data.required;
|
delete data.required;
|
||||||
data = $.extend( { required: param }, data );
|
data = $.extend( { required: param }, data );
|
||||||
$( element ).attr( "aria-required", "true" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure remote is at back
|
// Make sure remote is at back
|
||||||
@ -206,18 +217,18 @@ $.extend( $.fn, {
|
|||||||
// Custom selectors
|
// Custom selectors
|
||||||
$.extend( $.expr.pseudos || $.expr[ ":" ], { // '|| $.expr[ ":" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support
|
$.extend( $.expr.pseudos || $.expr[ ":" ], { // '|| $.expr[ ":" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support
|
||||||
|
|
||||||
// http://jqueryvalidation.org/blank-selector/
|
// https://jqueryvalidation.org/blank-selector/
|
||||||
blank: function( a ) {
|
blank: function( a ) {
|
||||||
return !$.trim( "" + $( a ).val() );
|
return !$.trim( "" + $( a ).val() );
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/filled-selector/
|
// https://jqueryvalidation.org/filled-selector/
|
||||||
filled: function( a ) {
|
filled: function( a ) {
|
||||||
var val = $( a ).val();
|
var val = $( a ).val();
|
||||||
return val !== null && !!$.trim( "" + val );
|
return val !== null && !!$.trim( "" + val );
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/unchecked-selector/
|
// https://jqueryvalidation.org/unchecked-selector/
|
||||||
unchecked: function( a ) {
|
unchecked: function( a ) {
|
||||||
return !$( a ).prop( "checked" );
|
return !$( a ).prop( "checked" );
|
||||||
}
|
}
|
||||||
@ -230,7 +241,7 @@ $.validator = function( options, form ) {
|
|||||||
this.init();
|
this.init();
|
||||||
};
|
};
|
||||||
|
|
||||||
// http://jqueryvalidation.org/jQuery.validator.format/
|
// https://jqueryvalidation.org/jQuery.validator.format/
|
||||||
$.validator.format = function( source, params ) {
|
$.validator.format = function( source, params ) {
|
||||||
if ( arguments.length === 1 ) {
|
if ( arguments.length === 1 ) {
|
||||||
return function() {
|
return function() {
|
||||||
@ -343,7 +354,7 @@ $.extend( $.validator, {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/jQuery.validator.setDefaults/
|
// https://jqueryvalidation.org/jQuery.validator.setDefaults/
|
||||||
setDefaults: function( settings ) {
|
setDefaults: function( settings ) {
|
||||||
$.extend( $.validator.defaults, settings );
|
$.extend( $.validator.defaults, settings );
|
||||||
},
|
},
|
||||||
@ -402,6 +413,7 @@ $.extend( $.validator, {
|
|||||||
// Set form expando on contenteditable
|
// Set form expando on contenteditable
|
||||||
if ( !this.form && this.hasAttribute( "contenteditable" ) ) {
|
if ( !this.form && this.hasAttribute( "contenteditable" ) ) {
|
||||||
this.form = $( this ).closest( "form" )[ 0 ];
|
this.form = $( this ).closest( "form" )[ 0 ];
|
||||||
|
this.name = $( this ).attr( "name" );
|
||||||
}
|
}
|
||||||
|
|
||||||
var validator = $.data( this.form, "validator" ),
|
var validator = $.data( this.form, "validator" ),
|
||||||
@ -426,13 +438,9 @@ $.extend( $.validator, {
|
|||||||
if ( this.settings.invalidHandler ) {
|
if ( this.settings.invalidHandler ) {
|
||||||
$( this.currentForm ).on( "invalid-form.validate", this.settings.invalidHandler );
|
$( this.currentForm ).on( "invalid-form.validate", this.settings.invalidHandler );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add aria-required to any Static/Data/Class required fields before first validation
|
|
||||||
// Screen readers require this attribute to be present before the initial submission http://www.w3.org/TR/WCAG-TECHS/ARIA2.html
|
|
||||||
$( this.currentForm ).find( "[required], [data-rule-required], .required" ).attr( "aria-required", "true" );
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/Validator.form/
|
// https://jqueryvalidation.org/Validator.form/
|
||||||
form: function() {
|
form: function() {
|
||||||
this.checkForm();
|
this.checkForm();
|
||||||
$.extend( this.submitted, this.errorMap );
|
$.extend( this.submitted, this.errorMap );
|
||||||
@ -452,7 +460,7 @@ $.extend( $.validator, {
|
|||||||
return this.valid();
|
return this.valid();
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/Validator.element/
|
// https://jqueryvalidation.org/Validator.element/
|
||||||
element: function( element ) {
|
element: function( element ) {
|
||||||
var cleanElement = this.clean( element ),
|
var cleanElement = this.clean( element ),
|
||||||
checkElement = this.validationTargetFor( cleanElement ),
|
checkElement = this.validationTargetFor( cleanElement ),
|
||||||
@ -503,7 +511,7 @@ $.extend( $.validator, {
|
|||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/Validator.showErrors/
|
// https://jqueryvalidation.org/Validator.showErrors/
|
||||||
showErrors: function( errors ) {
|
showErrors: function( errors ) {
|
||||||
if ( errors ) {
|
if ( errors ) {
|
||||||
var validator = this;
|
var validator = this;
|
||||||
@ -529,7 +537,7 @@ $.extend( $.validator, {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/Validator.resetForm/
|
// https://jqueryvalidation.org/Validator.resetForm/
|
||||||
resetForm: function() {
|
resetForm: function() {
|
||||||
if ( $.fn.resetForm ) {
|
if ( $.fn.resetForm ) {
|
||||||
$( this.currentForm ).resetForm();
|
$( this.currentForm ).resetForm();
|
||||||
@ -570,7 +578,10 @@ $.extend( $.validator, {
|
|||||||
var count = 0,
|
var count = 0,
|
||||||
i;
|
i;
|
||||||
for ( i in obj ) {
|
for ( i in obj ) {
|
||||||
if ( obj[ i ] ) {
|
|
||||||
|
// This check allows counting elements with empty error
|
||||||
|
// message as invalid elements
|
||||||
|
if ( obj[ i ] !== undefined && obj[ i ] !== null && obj[ i ] !== false ) {
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -635,6 +646,7 @@ $.extend( $.validator, {
|
|||||||
// Set form expando on contenteditable
|
// Set form expando on contenteditable
|
||||||
if ( this.hasAttribute( "contenteditable" ) ) {
|
if ( this.hasAttribute( "contenteditable" ) ) {
|
||||||
this.form = $( this ).closest( "form" )[ 0 ];
|
this.form = $( this ).closest( "form" )[ 0 ];
|
||||||
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Select only the first element for each name, and only those with rules specified
|
// Select only the first element for each name, and only those with rules specified
|
||||||
@ -735,21 +747,27 @@ $.extend( $.validator, {
|
|||||||
} ).length,
|
} ).length,
|
||||||
dependencyMismatch = false,
|
dependencyMismatch = false,
|
||||||
val = this.elementValue( element ),
|
val = this.elementValue( element ),
|
||||||
result, method, rule;
|
result, method, rule, normalizer;
|
||||||
|
|
||||||
// If a normalizer is defined for this element, then
|
// Prioritize the local normalizer defined for this element over the global one
|
||||||
// call it to retreive the changed value instead
|
// if the former exists, otherwise user the global one in case it exists.
|
||||||
|
if ( typeof rules.normalizer === "function" ) {
|
||||||
|
normalizer = rules.normalizer;
|
||||||
|
} else if ( typeof this.settings.normalizer === "function" ) {
|
||||||
|
normalizer = this.settings.normalizer;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If normalizer is defined, then call it to retreive the changed value instead
|
||||||
// of using the real one.
|
// of using the real one.
|
||||||
// Note that `this` in the normalizer is `element`.
|
// Note that `this` in the normalizer is `element`.
|
||||||
if ( typeof rules.normalizer === "function" ) {
|
if ( normalizer ) {
|
||||||
val = rules.normalizer.call( element, val );
|
val = normalizer.call( element, val );
|
||||||
|
|
||||||
if ( typeof val !== "string" ) {
|
if ( typeof val !== "string" ) {
|
||||||
throw new TypeError( "The normalizer should return a string value." );
|
throw new TypeError( "The normalizer should return a string value." );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete the normalizer from rules to avoid treating
|
// Delete the normalizer from rules to avoid treating it as a pre-defined method.
|
||||||
// it as a pre-defined method.
|
|
||||||
delete rules.normalizer;
|
delete rules.normalizer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1089,6 +1107,15 @@ $.extend( $.validator, {
|
|||||||
$( element ).removeClass( this.settings.pendingClass );
|
$( element ).removeClass( this.settings.pendingClass );
|
||||||
if ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) {
|
if ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) {
|
||||||
$( this.currentForm ).submit();
|
$( this.currentForm ).submit();
|
||||||
|
|
||||||
|
// Remove the hidden input that was used as a replacement for the
|
||||||
|
// missing submit button. The hidden input is added by `handle()`
|
||||||
|
// to ensure that the value of the used submit button is passed on
|
||||||
|
// for scripted submits triggered by this method
|
||||||
|
if ( this.submitButton ) {
|
||||||
|
$( "input:hidden[name='" + this.submitButton.name + "']", this.currentForm ).remove();
|
||||||
|
}
|
||||||
|
|
||||||
this.formSubmitted = false;
|
this.formSubmitted = false;
|
||||||
} else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) {
|
} else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) {
|
||||||
$( this.currentForm ).triggerHandler( "invalid-form", [ this ] );
|
$( this.currentForm ).triggerHandler( "invalid-form", [ this ] );
|
||||||
@ -1316,7 +1343,7 @@ $.extend( $.validator, {
|
|||||||
return data;
|
return data;
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/jQuery.validator.addMethod/
|
// https://jqueryvalidation.org/jQuery.validator.addMethod/
|
||||||
addMethod: function( name, method, message ) {
|
addMethod: function( name, method, message ) {
|
||||||
$.validator.methods[ name ] = method;
|
$.validator.methods[ name ] = method;
|
||||||
$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];
|
$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];
|
||||||
@ -1325,10 +1352,10 @@ $.extend( $.validator, {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/jQuery.validator.methods/
|
// https://jqueryvalidation.org/jQuery.validator.methods/
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
// http://jqueryvalidation.org/required-method/
|
// https://jqueryvalidation.org/required-method/
|
||||||
required: function( value, element, param ) {
|
required: function( value, element, param ) {
|
||||||
|
|
||||||
// Check if dependency is met
|
// Check if dependency is met
|
||||||
@ -1347,7 +1374,7 @@ $.extend( $.validator, {
|
|||||||
return value.length > 0;
|
return value.length > 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/email-method/
|
// https://jqueryvalidation.org/email-method/
|
||||||
email: function( value, element ) {
|
email: function( value, element ) {
|
||||||
|
|
||||||
// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address
|
// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address
|
||||||
@ -1357,7 +1384,7 @@ $.extend( $.validator, {
|
|||||||
return this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );
|
return this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/url-method/
|
// https://jqueryvalidation.org/url-method/
|
||||||
url: function( value, element ) {
|
url: function( value, element ) {
|
||||||
|
|
||||||
// Copyright (c) 2010-2013 Diego Perini, MIT licensed
|
// Copyright (c) 2010-2013 Diego Perini, MIT licensed
|
||||||
@ -1367,60 +1394,60 @@ $.extend( $.validator, {
|
|||||||
return this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test( value );
|
return this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test( value );
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/date-method/
|
// https://jqueryvalidation.org/date-method/
|
||||||
date: function( value, element ) {
|
date: function( value, element ) {
|
||||||
return this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );
|
return this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/dateISO-method/
|
// https://jqueryvalidation.org/dateISO-method/
|
||||||
dateISO: function( value, element ) {
|
dateISO: function( value, element ) {
|
||||||
return this.optional( element ) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );
|
return this.optional( element ) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/number-method/
|
// https://jqueryvalidation.org/number-method/
|
||||||
number: function( value, element ) {
|
number: function( value, element ) {
|
||||||
return this.optional( element ) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test( value );
|
return this.optional( element ) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test( value );
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/digits-method/
|
// https://jqueryvalidation.org/digits-method/
|
||||||
digits: function( value, element ) {
|
digits: function( value, element ) {
|
||||||
return this.optional( element ) || /^\d+$/.test( value );
|
return this.optional( element ) || /^\d+$/.test( value );
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/minlength-method/
|
// https://jqueryvalidation.org/minlength-method/
|
||||||
minlength: function( value, element, param ) {
|
minlength: function( value, element, param ) {
|
||||||
var length = $.isArray( value ) ? value.length : this.getLength( value, element );
|
var length = $.isArray( value ) ? value.length : this.getLength( value, element );
|
||||||
return this.optional( element ) || length >= param;
|
return this.optional( element ) || length >= param;
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/maxlength-method/
|
// https://jqueryvalidation.org/maxlength-method/
|
||||||
maxlength: function( value, element, param ) {
|
maxlength: function( value, element, param ) {
|
||||||
var length = $.isArray( value ) ? value.length : this.getLength( value, element );
|
var length = $.isArray( value ) ? value.length : this.getLength( value, element );
|
||||||
return this.optional( element ) || length <= param;
|
return this.optional( element ) || length <= param;
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/rangelength-method/
|
// https://jqueryvalidation.org/rangelength-method/
|
||||||
rangelength: function( value, element, param ) {
|
rangelength: function( value, element, param ) {
|
||||||
var length = $.isArray( value ) ? value.length : this.getLength( value, element );
|
var length = $.isArray( value ) ? value.length : this.getLength( value, element );
|
||||||
return this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );
|
return this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/min-method/
|
// https://jqueryvalidation.org/min-method/
|
||||||
min: function( value, element, param ) {
|
min: function( value, element, param ) {
|
||||||
return this.optional( element ) || value >= param;
|
return this.optional( element ) || value >= param;
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/max-method/
|
// https://jqueryvalidation.org/max-method/
|
||||||
max: function( value, element, param ) {
|
max: function( value, element, param ) {
|
||||||
return this.optional( element ) || value <= param;
|
return this.optional( element ) || value <= param;
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/range-method/
|
// https://jqueryvalidation.org/range-method/
|
||||||
range: function( value, element, param ) {
|
range: function( value, element, param ) {
|
||||||
return this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );
|
return this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/step-method/
|
// https://jqueryvalidation.org/step-method/
|
||||||
step: function( value, element, param ) {
|
step: function( value, element, param ) {
|
||||||
var type = $( element ).attr( "type" ),
|
var type = $( element ).attr( "type" ),
|
||||||
errorMessage = "Step attribute on input type " + type + " is not supported.",
|
errorMessage = "Step attribute on input type " + type + " is not supported.",
|
||||||
@ -1458,7 +1485,7 @@ $.extend( $.validator, {
|
|||||||
return this.optional( element ) || valid;
|
return this.optional( element ) || valid;
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/equalTo-method/
|
// https://jqueryvalidation.org/equalTo-method/
|
||||||
equalTo: function( value, element, param ) {
|
equalTo: function( value, element, param ) {
|
||||||
|
|
||||||
// Bind to the blur event of the target in order to revalidate whenever the target field is updated
|
// Bind to the blur event of the target in order to revalidate whenever the target field is updated
|
||||||
@ -1471,7 +1498,7 @@ $.extend( $.validator, {
|
|||||||
return value === target.val();
|
return value === target.val();
|
||||||
},
|
},
|
||||||
|
|
||||||
// http://jqueryvalidation.org/remote-method/
|
// https://jqueryvalidation.org/remote-method/
|
||||||
remote: function( value, element, param, method ) {
|
remote: function( value, element, param, method ) {
|
||||||
if ( this.optional( element ) ) {
|
if ( this.optional( element ) ) {
|
||||||
return "dependency-mismatch";
|
return "dependency-mismatch";
|
||||||
|
8
Teknik/Scripts/jquery.validate.min.js
vendored
8
Teknik/Scripts/jquery.validate.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
|
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
|
||||||
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
|
<Import Project="..\packages\Microsoft.Net.Compilers.2.6.1\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.2.6.1\build\Microsoft.Net.Compilers.props')" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
@ -53,12 +53,10 @@
|
|||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
|
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="IRCSharp, Version=1.0.0.1, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="IRCSharp, Version=1.0.0.1, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\IRCSharp.1.0.0.1\lib\net462\IRCSharp.dll</HintPath>
|
<HintPath>..\packages\IRCSharp.1.0.0.1\lib\net462\IRCSharp.dll</HintPath>
|
||||||
@ -76,41 +74,34 @@
|
|||||||
<HintPath>..\packages\Microsoft.AspNet.Identity.EntityFramework.2.2.1\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.Identity.EntityFramework.2.2.1\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.AspNet.SignalR.Core, Version=2.2.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.AspNet.SignalR.Core, Version=2.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.SignalR.Core.2.2.1\lib\net45\Microsoft.AspNet.SignalR.Core.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.SignalR.Core.2.2.2\lib\net45\Microsoft.AspNet.SignalR.Core.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.AspNet.SignalR.SystemWeb, Version=2.2.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.AspNet.SignalR.SystemWeb, Version=2.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.SignalR.SystemWeb.2.2.1\lib\net45\Microsoft.AspNet.SignalR.SystemWeb.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.SignalR.SystemWeb.2.2.2\lib\net45\Microsoft.AspNet.SignalR.SystemWeb.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Azure.KeyVault.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Azure.KeyVault.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Azure.KeyVault.Core.2.0.4\lib\net45\Microsoft.Azure.KeyVault.Core.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Azure.KeyVault.Core.2.0.4\lib\net45\Microsoft.Azure.KeyVault.Core.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
|
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="Microsoft.Owin, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Owin, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Owin.3.1.0\lib\net45\Microsoft.Owin.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Owin.Host.SystemWeb, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Owin.Host.SystemWeb, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.3.1.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Owin.Security, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Owin.Security, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Owin.Security.3.0.1\lib\net45\Microsoft.Owin.Security.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Owin.Security.3.1.0\lib\net45\Microsoft.Owin.Security.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Mime-Detective, Version=0.0.5.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Mime-Detective, Version=0.0.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Mime-Detective.0.0.5\lib\net45\Mime-Detective.dll</HintPath>
|
<HintPath>..\packages\Mime-Detective.0.0.5\lib\net45\Mime-Detective.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
<Reference Include="MySql.Data, Version=6.10.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MySql.Data.6.9.9\lib\net45\MySql.Data.dll</HintPath>
|
<HintPath>..\packages\MySql.Data.6.10.6\lib\net452\MySql.Data.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NBitcoin, Version=3.0.2.10, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="NBitcoin, Version=3.0.2.10, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NBitcoin.3.0.2.10\lib\net45\NBitcoin.dll</HintPath>
|
<HintPath>..\packages\NBitcoin.3.0.2.10\lib\net45\NBitcoin.dll</HintPath>
|
||||||
@ -121,16 +112,14 @@
|
|||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Newtonsoft.Json.10.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
|
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Piwik.Tracker, Version=2.16.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Piwik.Tracker, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Piwik.Tracker.2.16.0.0\lib\net40\Piwik.Tracker.dll</HintPath>
|
<HintPath>..\packages\Piwik.Tracker.3.0.0\lib\net40\Piwik.Tracker.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="PresentationFramework" />
|
<Reference Include="PresentationFramework" />
|
||||||
<Reference Include="QRCoder, Version=1.2.3.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="QRCoder, Version=1.2.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
@ -138,12 +127,18 @@
|
|||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.ComponentModel" />
|
||||||
|
<Reference Include="System.Configuration.Install" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Drawing.Design" />
|
||||||
|
<Reference Include="System.Management" />
|
||||||
|
<Reference Include="System.Runtime" />
|
||||||
<Reference Include="System.Runtime.Serialization" />
|
<Reference Include="System.Runtime.Serialization" />
|
||||||
<Reference Include="System.Security" />
|
<Reference Include="System.Security" />
|
||||||
<Reference Include="System.ServiceModel" />
|
<Reference Include="System.ServiceModel" />
|
||||||
|
<Reference Include="System.Transactions" />
|
||||||
<Reference Include="System.Web.DynamicData" />
|
<Reference Include="System.Web.DynamicData" />
|
||||||
<Reference Include="System.Web.Entity" />
|
<Reference Include="System.Web.Entity" />
|
||||||
<Reference Include="System.Web.ApplicationServices" />
|
<Reference Include="System.Web.ApplicationServices" />
|
||||||
@ -523,6 +518,17 @@
|
|||||||
<Content Include="Content\Highlight\xcode.css" />
|
<Content Include="Content\Highlight\xcode.css" />
|
||||||
<Content Include="Content\Highlight\zenburn.css" />
|
<Content Include="Content\Highlight\zenburn.css" />
|
||||||
<Content Include="Content\jquery.tocify.css" />
|
<Content Include="Content\jquery.tocify.css" />
|
||||||
|
<Content Include="docs\MySqlCommand.xml" />
|
||||||
|
<Content Include="docs\MySqlCommandBuilder.xml" />
|
||||||
|
<Content Include="docs\MySqlConnection.xml" />
|
||||||
|
<Content Include="docs\MySqlConnectionStringBuilder.xml" />
|
||||||
|
<Content Include="docs\MySqlDataAdapter.xml" />
|
||||||
|
<Content Include="docs\MySqlDataReader.xml" />
|
||||||
|
<Content Include="docs\MySqlException.xml" />
|
||||||
|
<Content Include="docs\MySqlHelper.xml" />
|
||||||
|
<Content Include="docs\MySqlParameter.xml" />
|
||||||
|
<Content Include="docs\MySqlParameterCollection.xml" />
|
||||||
|
<Content Include="docs\MySqlTransaction.xml" />
|
||||||
<Content Include="Fonts\fontawesome-webfont.svg" />
|
<Content Include="Fonts\fontawesome-webfont.svg" />
|
||||||
<Content Include="Fonts\glyphicons-halflings-regular.svg" />
|
<Content Include="Fonts\glyphicons-halflings-regular.svg" />
|
||||||
<Content Include="Images\redbubble_icon.png" />
|
<Content Include="Images\redbubble_icon.png" />
|
||||||
@ -716,16 +722,17 @@
|
|||||||
<Content Include="Scripts\Highcharts\highcharts.js" />
|
<Content Include="Scripts\Highcharts\highcharts.js" />
|
||||||
<Content Include="Scripts\Highlight\highlight.pack.js" />
|
<Content Include="Scripts\Highlight\highlight.pack.js" />
|
||||||
<None Include="Scripts\jquery-3.1.1.intellisense.js" />
|
<None Include="Scripts\jquery-3.1.1.intellisense.js" />
|
||||||
<Content Include="Scripts\jquery-3.1.1.js" />
|
<None Include="Scripts\jquery-3.3.1.intellisense.js" />
|
||||||
<Content Include="Scripts\jquery-3.1.1.min.js" />
|
<Content Include="Scripts\jquery-3.3.1.js" />
|
||||||
<Content Include="Scripts\jquery-3.1.1.slim.js" />
|
<Content Include="Scripts\jquery-3.3.1.min.js" />
|
||||||
<Content Include="Scripts\jquery-3.1.1.slim.min.js" />
|
<Content Include="Scripts\jquery-3.3.1.slim.js" />
|
||||||
|
<Content Include="Scripts\jquery-3.3.1.slim.min.js" />
|
||||||
<Content Include="Scripts\jquery-ui.widgets.js" />
|
<Content Include="Scripts\jquery-ui.widgets.js" />
|
||||||
<Content Include="Scripts\jquery.blockUI.js" />
|
<Content Include="Scripts\jquery.blockUI.js" />
|
||||||
<Content Include="Scripts\jquery.fileupload.js" />
|
<Content Include="Scripts\jquery.fileupload.js" />
|
||||||
<Content Include="Scripts\jquery.iframe-transport.js" />
|
<Content Include="Scripts\jquery.iframe-transport.js" />
|
||||||
<Content Include="Scripts\jquery.signalR-2.2.1.js" />
|
<Content Include="Scripts\jquery.signalR-2.2.2.js" />
|
||||||
<Content Include="Scripts\jquery.signalR-2.2.1.min.js" />
|
<Content Include="Scripts\jquery.signalR-2.2.2.min.js" />
|
||||||
<Content Include="Scripts\jquery.tocify.min.js" />
|
<Content Include="Scripts\jquery.tocify.min.js" />
|
||||||
<None Include="Scripts\jquery.validate-vsdoc.js" />
|
<None Include="Scripts\jquery.validate-vsdoc.js" />
|
||||||
<Content Include="Scripts\jquery.validate.js" />
|
<Content Include="Scripts\jquery.validate.js" />
|
||||||
@ -769,8 +776,8 @@
|
|||||||
<Content Include="Areas\User\Views\User\Register.cshtml" />
|
<Content Include="Areas\User\Views\User\Register.cshtml" />
|
||||||
<Content Include="Areas\Dev\Views\Dev\Index.cshtml" />
|
<Content Include="Areas\Dev\Views\Dev\Index.cshtml" />
|
||||||
<Content Include="Areas\User\Views\User\_LoginModalPartial.cshtml" />
|
<Content Include="Areas\User\Views\User\_LoginModalPartial.cshtml" />
|
||||||
<Content Include="Scripts\jquery-3.1.1.slim.min.map" />
|
<Content Include="Scripts\jquery-3.3.1.slim.min.map" />
|
||||||
<Content Include="Scripts\jquery-3.1.1.min.map" />
|
<Content Include="Scripts\jquery-3.3.1.min.map" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Areas\About\Models\" />
|
<Folder Include="Areas\About\Models\" />
|
||||||
@ -899,8 +906,8 @@
|
|||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\packages\GitVersionTask.3.6.5\build\dotnet\GitVersionTask.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\GitVersionTask.3.6.5\build\dotnet\GitVersionTask.targets'))" />
|
<Error Condition="!Exists('..\packages\GitVersionTask.3.6.5\build\dotnet\GitVersionTask.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\GitVersionTask.3.6.5\build\dotnet\GitVersionTask.targets'))" />
|
||||||
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
|
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.6.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.2.6.1\build\Microsoft.Net.Compilers.props'))" />
|
||||||
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
|
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
|
||||||
</Target>
|
</Target>
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
For more information on how to configure your ASP.NET application, please visit
|
For more information on how to configure your ASP.NET application, please visit
|
||||||
http://go.microsoft.com/fwlink/?LinkId=301880
|
http://go.microsoft.com/fwlink/?LinkId=301880
|
||||||
@ -6,7 +6,7 @@
|
|||||||
<configuration>
|
<configuration>
|
||||||
<configSections>
|
<configSections>
|
||||||
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||||
</configSections>
|
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
|
||||||
<connectionStrings configSource="App_Data\ConnectionStrings.config" />
|
<connectionStrings configSource="App_Data\ConnectionStrings.config" />
|
||||||
<!-- Create ConnectionStrings.config and add your connection string node-->
|
<!-- Create ConnectionStrings.config and add your connection string node-->
|
||||||
<!--
|
<!--
|
||||||
@ -135,7 +135,7 @@
|
|||||||
<add name="Access-Control-Allow-Headers" value="Authorization, Accept, Origin, Content-Type, X-Requested-With, Connection, Transfer-Encoding" />
|
<add name="Access-Control-Allow-Headers" value="Authorization, Accept, Origin, Content-Type, X-Requested-With, Connection, Transfer-Encoding" />
|
||||||
<add name="strict-transport-security" value="max-age=31536000; includeSubdomains; preload" />
|
<add name="strict-transport-security" value="max-age=31536000; includeSubdomains; preload" />
|
||||||
<add name="X-XSS-Protection" value="1; mode=block" />
|
<add name="X-XSS-Protection" value="1; mode=block" />
|
||||||
<add name="Vary" value="Origin"/>
|
<add name="Vary" value="Origin" />
|
||||||
</customHeaders>
|
</customHeaders>
|
||||||
</httpProtocol>
|
</httpProtocol>
|
||||||
<httpErrors errorMode="Detailed" />
|
<httpErrors errorMode="Detailed" />
|
||||||
@ -172,11 +172,11 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
@ -190,16 +190,16 @@
|
|||||||
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
|
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
|
||||||
</providers>
|
</providers>
|
||||||
</entityFramework>
|
</entityFramework>
|
||||||
<system.data>
|
<system.data>
|
||||||
<DbProviderFactories>
|
<DbProviderFactories>
|
||||||
<remove invariant="MySql.Data.MySqlClient" />
|
<remove invariant="MySql.Data.MySqlClient" />
|
||||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
<add description=".Net Framework Data Provider for MySQL" invariant="MySql.Data.MySqlClient" name="MySQL Data Provider" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.10.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
||||||
</DbProviderFactories>
|
</DbProviderFactories>
|
||||||
</system.data>
|
</system.data>
|
||||||
<system.codedom>
|
<system.codedom>
|
||||||
<compilers>
|
<compilers>
|
||||||
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
|
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
|
||||||
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
|
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
|
||||||
</compilers>
|
</compilers>
|
||||||
</system.codedom>
|
</system.codedom>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
934
Teknik/docs/MySqlCommand.xml
Normal file
934
Teknik/docs/MySqlCommand.xml
Normal file
@ -0,0 +1,934 @@
|
|||||||
|
<docs>
|
||||||
|
<ClassSummary>
|
||||||
|
<summary>Represents a SQL statement to execute against a MySQL database. This class cannot be inherited.</summary>
|
||||||
|
<remarks>
|
||||||
|
<B>MySqlCommand</B> features the following methods for executing commands at a MySQL database:
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Item</term>
|
||||||
|
<term>Description</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<a href="MySql.Data.MySqlClient.MySqlCommand.ExecuteReader_overloads.html">ExecuteReader</a>
|
||||||
|
</term>
|
||||||
|
<description>Executes commands that return rows.</description>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<a href="MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery.html">ExecuteNonQuery</a>
|
||||||
|
</term>
|
||||||
|
<description>Executes commands such as SQL INSERT, DELETE, and UPDATE statements.</description>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<a href="MySql.Data.MySqlClient.MySqlCommand.ExecuteScalar.html">ExecuteScalar</a>
|
||||||
|
</term>
|
||||||
|
<description>Retrieves a single value (for example, an aggregate value) from a database.</description>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
|
||||||
|
You can reset the <B>CommandText</B> property and reuse the <B>MySqlCommand</B>
|
||||||
|
object. However, you must close the <A
|
||||||
|
href="MySql.Data.MySqlClient.MySqlDataReader.html">MySqlDataReader</A>
|
||||||
|
before you can execute a new or previous command.
|
||||||
|
|
||||||
|
If a <A href="MySql.Data.MySqlClient.MySqlException.html">MySqlException</A> is
|
||||||
|
generated by the method executing a <B>MySqlCommand</B>, the <A
|
||||||
|
href="MySql.Data.MySqlClient.MySqlConnection.html">MySqlConnection</A>
|
||||||
|
remains open. It is the responsibility of the programmer to close the connection.
|
||||||
|
|
||||||
|
<note>
|
||||||
|
Using the '@' symbol for paramters is now the preferred approach although the old pattern of using
|
||||||
|
'?' is still supported. Please be aware though that using '@' can cause conflicts when user variables
|
||||||
|
are also used. To help with this situation please see the documentation on the 'allow user variables'
|
||||||
|
connection string option. The 'old syntax' connection string option has now been deprecated.
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example creates a <A href="frlrfsystemdatasqlclientsqlcommandclasstopic.htm">MySqlCommand</A> and
|
||||||
|
a <B>MySqlConnection</B>. The <B>MySqlConnection</B> is opened and set as the <A
|
||||||
|
href="frlrfsystemdatasqlclientsqlcommandclassconnectiontopic.htm">Connection</A>
|
||||||
|
for the <B>MySqlCommand</B>. The example then calls <A
|
||||||
|
href="frlrfsystemdatasqlclientsqlcommandclassexecutenonquerytopic.htm">ExecuteNonQuery</A>,
|
||||||
|
and closes the connection. To accomplish this, the <B>ExecuteNonQuery</B> is
|
||||||
|
passed a connection string and a query string that is a SQL INSERT
|
||||||
|
statement.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub InsertRow(myConnectionString As String)
|
||||||
|
" If the connection string is null, use a default.
|
||||||
|
If myConnectionString = "" Then
|
||||||
|
myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass"
|
||||||
|
End If
|
||||||
|
Dim myConnection As New MySqlConnection(myConnectionString)
|
||||||
|
Dim myInsertQuery As String = "INSERT INTO Orders (id, customerId, amount) Values(1001, 23, 30.66)"
|
||||||
|
Dim myCommand As New MySqlCommand(myInsertQuery)
|
||||||
|
myCommand.Connection = myConnection
|
||||||
|
myConnection.Open()
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myCommand.Connection.Close()
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void InsertRow(string myConnectionString)
|
||||||
|
{
|
||||||
|
// If the connection string is null, use a default.
|
||||||
|
if(myConnectionString == "")
|
||||||
|
{
|
||||||
|
myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass";
|
||||||
|
}
|
||||||
|
MySqlConnection myConnection = new MySqlConnection(myConnectionString);
|
||||||
|
string myInsertQuery = "INSERT INTO Orders (id, customerId, amount) Values(1001, 23, 30.66)";
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(myInsertQuery);
|
||||||
|
myCommand.Connection = myConnection;
|
||||||
|
myConnection.Open();
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myCommand.Connection.Close();
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</ClassSummary>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ctor1>
|
||||||
|
<overloads>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the MySqlCommand class.
|
||||||
|
</summary>
|
||||||
|
<example>
|
||||||
|
The following example creates a MySqlCommand and sets some of its properties.
|
||||||
|
<para></para>
|
||||||
|
<note>
|
||||||
|
This example shows how to use one of the overloaded
|
||||||
|
versions of the MySqlCommand constructor. For other examples that might be available,
|
||||||
|
see the individual overload topics.
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim myConnection As New MySqlConnection _
|
||||||
|
("Persist Security Info=False;database=test;server=myServer")
|
||||||
|
myConnection.Open()
|
||||||
|
Dim myTrans As MySqlTransaction = myConnection.BeginTransaction()
|
||||||
|
Dim mySelectQuery As String = "SELECT * FROM MyTable"
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery, myConnection, myTrans)
|
||||||
|
myCommand.CommandTimeout = 20
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlConnection myConnection = new MySqlConnection("Persist Security Info=False;
|
||||||
|
database=test;server=myServer");
|
||||||
|
myConnection.Open();
|
||||||
|
MySqlTransaction myTrans = myConnection.BeginTransaction();
|
||||||
|
string mySelectQuery = "SELECT * FROM myTable";
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery, myConnection,myTrans);
|
||||||
|
myCommand.CommandTimeout = 20;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
<code lang="C++">
|
||||||
|
public:
|
||||||
|
void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlConnection* myConnection = new MySqlConnection(S"Persist Security Info=False;
|
||||||
|
database=test;server=myServer");
|
||||||
|
myConnection->Open();
|
||||||
|
MySqlTransaction* myTrans = myConnection->BeginTransaction();
|
||||||
|
String* mySelectQuery = S"SELECT * FROM myTable";
|
||||||
|
MySqlCommand* myCommand = new MySqlCommand(mySelectQuery, myConnection, myTrans);
|
||||||
|
myCommand->CommandTimeout = 20;
|
||||||
|
};
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</overloads>
|
||||||
|
|
||||||
|
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the MySqlCommand class.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
The base constructor initializes all fields to their default values. The
|
||||||
|
following table shows initial property values for an instance of <see cref="MySqlCommand"/>.
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandText"/>
|
||||||
|
</term>
|
||||||
|
<term>empty string ("")</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandTimeout"/>
|
||||||
|
</term>
|
||||||
|
<term>0</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandType"/>
|
||||||
|
</term>
|
||||||
|
<term>CommandType.Text</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="Connection"/>
|
||||||
|
</term>
|
||||||
|
<term>Null</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value for any of these properties through a separate call to
|
||||||
|
the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and
|
||||||
|
sets some of its properties.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim myCommand As New MySqlCommand()
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand();
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</ctor1>
|
||||||
|
|
||||||
|
<ctor2>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlCommand"/> class with the text of the query.
|
||||||
|
</summary>
|
||||||
|
<param name="cmdText">The text of the query.</param>
|
||||||
|
<remarks>
|
||||||
|
When an instance of <see cref="MySqlCommand"/> is created,
|
||||||
|
the following read/write properties are set to initial values.
|
||||||
|
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandText"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<i>cmdText</i>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandTimeout"/>
|
||||||
|
</term>
|
||||||
|
<term>0</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandType"/>
|
||||||
|
</term>
|
||||||
|
<term>CommandType.Text</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="Connection"/>
|
||||||
|
</term>
|
||||||
|
<term>Null</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value for any of these properties through a separate call to
|
||||||
|
the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and
|
||||||
|
sets some of its properties.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim sql as String = "SELECT * FROM mytable"
|
||||||
|
Dim myCommand As New MySqlCommand(sql)
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
string sql = "SELECT * FROM mytable";
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(sql);
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</ctor2>
|
||||||
|
|
||||||
|
<ctor3>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlCommand"/> class
|
||||||
|
with the text of the query and a <see cref="MySqlConnection"/>.
|
||||||
|
</summary>
|
||||||
|
<param name="cmdText">The text of the query.</param>
|
||||||
|
<param name="connection">
|
||||||
|
A <see cref="MySqlConnection"/> that represents the
|
||||||
|
connection to an instance of SQL Server.
|
||||||
|
</param>
|
||||||
|
<remarks>
|
||||||
|
When an instance of <see cref="MySqlCommand"/> is created,
|
||||||
|
the following read/write properties are set to initial values.
|
||||||
|
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandText"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<i>cmdText</i>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandTimeout"/>
|
||||||
|
</term>
|
||||||
|
<term>0</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandType"/>
|
||||||
|
</term>
|
||||||
|
<term>CommandType.Text</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="Connection"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<i>connection</i>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value for any of these properties through a separate call to
|
||||||
|
the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and
|
||||||
|
sets some of its properties.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim conn as new MySqlConnection("server=myServer")
|
||||||
|
Dim sql as String = "SELECT * FROM mytable"
|
||||||
|
Dim myCommand As New MySqlCommand(sql, conn)
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlConnection conn = new MySqlConnection("server=myserver")
|
||||||
|
string sql = "SELECT * FROM mytable";
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(sql, conn);
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
|
||||||
|
</ctor3>
|
||||||
|
|
||||||
|
<ctor4>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlCommand"/> class
|
||||||
|
with the text of the query, a <see cref="MySqlConnection"/>, and the
|
||||||
|
<see cref="MySqlTransaction"/>.
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
<param name="cmdText">The text of the query.</param>
|
||||||
|
<param name="connection">
|
||||||
|
A <see cref="MySqlConnection"/> that represents the
|
||||||
|
connection to an instance of SQL Server.
|
||||||
|
</param>
|
||||||
|
<param name="transaction">
|
||||||
|
The <see cref="MySqlTransaction"/> in which the <see cref="MySqlCommand"/> executes.
|
||||||
|
</param>
|
||||||
|
<remarks>
|
||||||
|
When an instance of <see cref="MySqlCommand"/> is created,
|
||||||
|
the following read/write properties are set to initial values.
|
||||||
|
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandText"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<i>cmdText</i>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandTimeout"/>
|
||||||
|
</term>
|
||||||
|
<term>0</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandType"/>
|
||||||
|
</term>
|
||||||
|
<term>CommandType.Text</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="Connection"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<i>connection</i>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value for any of these properties through a separate call to
|
||||||
|
the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and
|
||||||
|
sets some of its properties.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim conn as new MySqlConnection("server=myServer")
|
||||||
|
conn.Open();
|
||||||
|
Dim txn as MySqlTransaction = conn.BeginTransaction()
|
||||||
|
Dim sql as String = "SELECT * FROM mytable"
|
||||||
|
Dim myCommand As New MySqlCommand(sql, conn, txn)
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlConnection conn = new MySqlConnection("server=myserver")
|
||||||
|
conn.Open();
|
||||||
|
MySqlTransaction txn = conn.BeginTransaction();
|
||||||
|
string sql = "SELECT * FROM mytable";
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(sql, conn, txn);
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
</ctor4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ExecuteNonQuery>
|
||||||
|
<summary>
|
||||||
|
Executes a SQL statement against the connection and returns the number of rows affected.
|
||||||
|
</summary>
|
||||||
|
<returns>Number of rows affected</returns>
|
||||||
|
<remarks>
|
||||||
|
You can use ExecuteNonQuery to perform any type of database operation,
|
||||||
|
however any resultsets returned will not be available. Any output parameters
|
||||||
|
used in calling a stored procedure will be populated with data and can be
|
||||||
|
retrieved after execution is complete.
|
||||||
|
For UPDATE, INSERT, and DELETE statements, the return value is the number
|
||||||
|
of rows affected by the command. For all other types of statements, the return
|
||||||
|
value is -1.
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a MySqlCommand and then
|
||||||
|
executes it using ExecuteNonQuery. The example is passed a string that is a
|
||||||
|
SQL statement (such as UPDATE, INSERT, or DELETE) and a string to use to
|
||||||
|
connect to the data source.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand(myExecuteQuery As String, myConnection As MySqlConnection)
|
||||||
|
Dim myCommand As New MySqlCommand(myExecuteQuery, myConnection)
|
||||||
|
myCommand.Connection.Open()
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myConnection.Close()
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand(string myExecuteQuery, MySqlConnection myConnection)
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(myExecuteQuery, myConnection);
|
||||||
|
myCommand.Connection.Open();
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</ExecuteNonQuery>
|
||||||
|
|
||||||
|
<ExecuteReader1>
|
||||||
|
<summary>
|
||||||
|
Sends the <see cref="CommandText"/> to the <see cref="MySqlConnection">Connection</see>,
|
||||||
|
and builds a <see cref="MySqlDataReader"/> using one of the <see cref="CommandBehavior"/> values.
|
||||||
|
</summary>
|
||||||
|
<param name="behavior">
|
||||||
|
One of the <see cref="CommandBehavior"/> values.
|
||||||
|
</param>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When the <see cref="CommandType"/> property is set to <B>StoredProcedure</B>,
|
||||||
|
the <see cref="CommandText"/> property should be set to the name of the stored
|
||||||
|
procedure. The command executes this stored procedure when you call
|
||||||
|
<B>ExecuteReader</B>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The <see cref="MySqlDataReader"/> supports a special mode that enables large binary
|
||||||
|
values to be read efficiently. For more information, see the <B>SequentialAccess</B>
|
||||||
|
setting for <see cref="CommandBehavior"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
While the <see cref="MySqlDataReader"/> is in use, the associated
|
||||||
|
<see cref="MySqlConnection"/> is busy serving the <B>MySqlDataReader</B>.
|
||||||
|
While in this state, no other operations can be performed on the
|
||||||
|
<B>MySqlConnection</B> other than closing it. This is the case until the
|
||||||
|
<see cref="MySqlDataReader.Close"/> method of the <B>MySqlDataReader</B> is called.
|
||||||
|
If the <B>MySqlDataReader</B> is created with <B>CommandBehavior</B> set to
|
||||||
|
<B>CloseConnection</B>, closing the <B>MySqlDataReader</B> closes the connection
|
||||||
|
automatically.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
When calling ExecuteReader with the SingleRow behavior, you should be aware that using a <i>limit</i>
|
||||||
|
clause in your SQL will cause all rows (up to the limit given) to be retrieved by the client. The
|
||||||
|
<see cref="MySqlDataReader.Read"/> method will still return false after the first row but pulling all rows of data
|
||||||
|
into the client will have a performance impact. If the <i>limit</i> clause is not necessary, it should
|
||||||
|
be avoided.
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
<returns>
|
||||||
|
A <see cref="MySqlDataReader"/> object.
|
||||||
|
</returns>
|
||||||
|
</ExecuteReader1>
|
||||||
|
|
||||||
|
|
||||||
|
<ExecuteReader>
|
||||||
|
<summary>
|
||||||
|
Sends the <see cref="CommandText"/> to the <see cref="MySqlConnection">Connection</see>
|
||||||
|
and builds a <see cref="MySqlDataReader"/>.
|
||||||
|
</summary>
|
||||||
|
<returns>
|
||||||
|
A <see cref="MySqlDataReader"/> object.
|
||||||
|
</returns>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When the <see cref="CommandType"/> property is set to <B>StoredProcedure</B>,
|
||||||
|
the <see cref="CommandText"/> property should be set to the name of the stored
|
||||||
|
procedure. The command executes this stored procedure when you call
|
||||||
|
<B>ExecuteReader</B>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
While the <see cref="MySqlDataReader"/> is in use, the associated
|
||||||
|
<see cref="MySqlConnection"/> is busy serving the <B>MySqlDataReader</B>.
|
||||||
|
While in this state, no other operations can be performed on the
|
||||||
|
<B>MySqlConnection</B> other than closing it. This is the case until the
|
||||||
|
<see cref="MySqlDataReader.Close"/> method of the <B>MySqlDataReader</B> is called.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/>, then executes it by
|
||||||
|
passing a string that is a SQL SELECT statement, and a string to use to connect to the
|
||||||
|
data source.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlDataReader(mySelectQuery As String, myConnection As MySqlConnection)
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
|
||||||
|
myConnection.Open()
|
||||||
|
Dim myReader As MySqlDataReader
|
||||||
|
myReader = myCommand.ExecuteReader()
|
||||||
|
Try
|
||||||
|
While myReader.Read()
|
||||||
|
Console.WriteLine(myReader.GetString(0))
|
||||||
|
End While
|
||||||
|
Finally
|
||||||
|
myReader.Close
|
||||||
|
myConnection.Close
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlDataReader(string mySelectQuery, MySqlConnection myConnection)
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery, myConnection);
|
||||||
|
myConnection.Open();
|
||||||
|
MMySqlDataReader myReader;
|
||||||
|
myReader = myCommand.ExecuteReader();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
while(myReader.Read())
|
||||||
|
{
|
||||||
|
Console.WriteLine(myReader.GetString(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
myReader.Close();
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</ExecuteReader>
|
||||||
|
|
||||||
|
|
||||||
|
<Prepare>
|
||||||
|
<summary>
|
||||||
|
Creates a prepared version of the command on an instance of MySQL Server.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
Prepared statements are only supported on MySQL version 4.1 and higher. Calling
|
||||||
|
prepare while connected to earlier versions of MySQL will succeed but will execute
|
||||||
|
the statement in the same way as unprepared.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example demonstrates the use of the <b>Prepare</b> method.
|
||||||
|
<code lang="VB.NET">
|
||||||
|
public sub PrepareExample()
|
||||||
|
Dim cmd as New MySqlCommand("INSERT INTO mytable VALUES (@val)", myConnection)
|
||||||
|
cmd.Parameters.Add( "@val", 10 )
|
||||||
|
cmd.Prepare()
|
||||||
|
cmd.ExecuteNonQuery()
|
||||||
|
|
||||||
|
cmd.Parameters(0).Value = 20
|
||||||
|
cmd.ExecuteNonQuery()
|
||||||
|
end sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
private void PrepareExample()
|
||||||
|
{
|
||||||
|
MySqlCommand cmd = new MySqlCommand("INSERT INTO mytable VALUES (@val)", myConnection);
|
||||||
|
cmd.Parameters.Add( "@val", 10 );
|
||||||
|
cmd.Prepare();
|
||||||
|
cmd.ExecuteNonQuery();
|
||||||
|
|
||||||
|
cmd.Parameters[0].Value = 20;
|
||||||
|
cmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Prepare>
|
||||||
|
|
||||||
|
<ExecuteScalar>
|
||||||
|
<summary>
|
||||||
|
Executes the query, and returns the first column of the first row in the
|
||||||
|
result set returned by the query. Extra columns or rows are ignored.
|
||||||
|
</summary>
|
||||||
|
<returns>
|
||||||
|
The first column of the first row in the result set, or a null reference if the
|
||||||
|
result set is empty
|
||||||
|
</returns>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
Use the <B>ExecuteScalar</B> method to retrieve a single value (for example,
|
||||||
|
an aggregate value) from a database. This requires less code than using the
|
||||||
|
<see cref="ExecuteReader()"/> method, and then performing the operations necessary
|
||||||
|
to generate the single value using the data returned by a <see cref="MySqlDataReader"/>
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and then
|
||||||
|
executes it using <B>ExecuteScalar</B>. The example is passed a string that is a
|
||||||
|
SQL statement that returns an aggregate result, and a string to use to
|
||||||
|
connect to the data source.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand(myScalarQuery As String, myConnection As MySqlConnection)
|
||||||
|
Dim myCommand As New MySqlCommand(myScalarQuery, myConnection)
|
||||||
|
myCommand.Connection.Open()
|
||||||
|
myCommand.ExecuteScalar()
|
||||||
|
myConnection.Close()
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand(string myScalarQuery, MySqlConnection myConnection)
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(myScalarQuery, myConnection);
|
||||||
|
myCommand.Connection.Open();
|
||||||
|
myCommand.ExecuteScalar();
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
<code lang="C++">
|
||||||
|
public:
|
||||||
|
void CreateMySqlCommand(String* myScalarQuery, MySqlConnection* myConnection)
|
||||||
|
{
|
||||||
|
MySqlCommand* myCommand = new MySqlCommand(myScalarQuery, myConnection);
|
||||||
|
myCommand->Connection->Open();
|
||||||
|
myCommand->ExecuteScalar();
|
||||||
|
myConnection->Close();
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
|
||||||
|
</example>
|
||||||
|
</ExecuteScalar>
|
||||||
|
|
||||||
|
<CommandText>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the SQL statement to execute at the data source.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The SQL statement or stored procedure to execute. The default is an empty string.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When the <see cref="CommandType"/> property is set to <B>StoredProcedure</B>,
|
||||||
|
the <B>CommandText</B> property should be set to the name of the stored procedure.
|
||||||
|
The user may be required to use escape character syntax if the stored procedure name
|
||||||
|
contains any special characters. The command executes this stored procedure when
|
||||||
|
you call one of the Execute methods. Starting with Connector/Net 5.0, having both a stored function
|
||||||
|
and stored procedure with the same name in the same database is not supported. It is
|
||||||
|
suggested that you provide unqiue names for your stored routines.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and sets some of its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim myCommand As New MySqlCommand()
|
||||||
|
myCommand.CommandText = "SELECT * FROM Mytable ORDER BY id"
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand();
|
||||||
|
myCommand.CommandText = "SELECT * FROM mytable ORDER BY id";
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</CommandText>
|
||||||
|
|
||||||
|
<CommandTimeout>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the wait time before terminating the attempt to execute a command
|
||||||
|
and generating an error.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The time (in seconds) to wait for the command to execute. The default is 30
|
||||||
|
seconds.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
CommandTimeout is dependent on the ability of MySQL to cancel an executing query.
|
||||||
|
Because of this, CommandTimeout is only supported when connected to MySQL
|
||||||
|
version 5.0.0 or higher.
|
||||||
|
</remarks>
|
||||||
|
</CommandTimeout>
|
||||||
|
|
||||||
|
<CommandType>
|
||||||
|
<summary>
|
||||||
|
Gets or sets a value indicating how the <see cref="CommandText"/> property is to be interpreted.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
One of the <see cref="System.Data.CommandType"/> values. The default is <B>Text</B>.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When you set the <B>CommandType</B> property to <B>StoredProcedure</B>, you
|
||||||
|
should set the <see cref="CommandText"/> property to the name of the stored
|
||||||
|
procedure. The command executes this stored procedure when you call one of the
|
||||||
|
Execute methods.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and sets some of its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim myCommand As New MySqlCommand()
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand();
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</CommandType>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<Connection>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the <see cref="MySqlConnection"/> used by this instance of the
|
||||||
|
<see cref="MySqlCommand"/>.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The connection to a data source. The default value is a null reference
|
||||||
|
(<B>Nothing</B> in Visual Basic).
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
If you set <B>Connection</B> while a transaction is in progress and the
|
||||||
|
<see cref="Transaction"/> property is not null, an <see cref="InvalidOperationException"/>
|
||||||
|
is generated. If the <B>Transaction</B> property is not null and the transaction
|
||||||
|
has already been committed or rolled back, <B>Transaction</B> is set to
|
||||||
|
null.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and sets some of its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim mySelectQuery As String = "SELECT * FROM mytable ORDER BY id"
|
||||||
|
Dim myConnectString As String = "Persist Security Info=False;database=test;server=myServer"
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery)
|
||||||
|
myCommand.Connection = New MySqlConnection(myConnectString)
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
string mySelectQuery = "SELECT * FROM mytable ORDER BY id";
|
||||||
|
string myConnectString = "Persist Security Info=False;database=test;server=myServer";
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery);
|
||||||
|
myCommand.Connection = new MySqlConnection(myConnectString);
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Connection>
|
||||||
|
|
||||||
|
<IsPrepared>
|
||||||
|
</IsPrepared>
|
||||||
|
|
||||||
|
<LastInsertedId>
|
||||||
|
<summary>Provides the id of the last inserted row.</summary>
|
||||||
|
<value>
|
||||||
|
Id of the last inserted row. -1 if none exists.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
An important point to remember is that this property can be used
|
||||||
|
in batch SQL scenarios but it's important to remember that it will
|
||||||
|
only reflect the insert id from the last insert statement in the batch.
|
||||||
|
|
||||||
|
This property can also be used when the batch includes select statements
|
||||||
|
and ExecuteReader is used. This property can be consulted during result set
|
||||||
|
processing.
|
||||||
|
</remarks>
|
||||||
|
</LastInsertedId>
|
||||||
|
|
||||||
|
<Parameters>
|
||||||
|
<summary>
|
||||||
|
Get the <see cref="MySqlParameterCollection"/>
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The parameters of the SQL statement or stored procedure. The default is
|
||||||
|
an empty collection.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
Connector/Net does not support unnamed parameters. Every parameter added to the collection must
|
||||||
|
have an associated name.
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and displays its parameters.
|
||||||
|
To accomplish this, the method is passed a <see cref="MySqlConnection"/>, a query string
|
||||||
|
that is a SQL SELECT statement, and an array of <see cref="MySqlParameter"/> objects.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand(myConnection As MySqlConnection, _
|
||||||
|
mySelectQuery As String, myParamArray() As MySqlParameter)
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
|
||||||
|
myCommand.CommandText = "SELECT id, name FROM mytable WHERE age=@age"
|
||||||
|
myCommand.UpdatedRowSource = UpdateRowSource.Both
|
||||||
|
myCommand.Parameters.Add(myParamArray)
|
||||||
|
Dim j As Integer
|
||||||
|
For j = 0 To myCommand.Parameters.Count - 1
|
||||||
|
myCommand.Parameters.Add(myParamArray(j))
|
||||||
|
Next j
|
||||||
|
Dim myMessage As String = ""
|
||||||
|
Dim i As Integer
|
||||||
|
For i = 0 To myCommand.Parameters.Count - 1
|
||||||
|
myMessage += myCommand.Parameters(i).ToString() & ControlChars.Cr
|
||||||
|
Next i
|
||||||
|
Console.WriteLine(myMessage)
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand(MySqlConnection myConnection, string mySelectQuery,
|
||||||
|
MySqlParameter[] myParamArray)
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery, myConnection);
|
||||||
|
myCommand.CommandText = "SELECT id, name FROM mytable WHERE age=@age";
|
||||||
|
myCommand.Parameters.Add(myParamArray);
|
||||||
|
for (int j=0; j<myParamArray.Length; j++)
|
||||||
|
{
|
||||||
|
myCommand.Parameters.Add(myParamArray[j]) ;
|
||||||
|
}
|
||||||
|
string myMessage = "";
|
||||||
|
for (int i = 0; i < myCommand.Parameters.Count; i++)
|
||||||
|
{
|
||||||
|
myMessage += myCommand.Parameters[i].ToString() + "\n";
|
||||||
|
}
|
||||||
|
MessageBox.Show(myMessage);
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Parameters>
|
||||||
|
|
||||||
|
<Transaction>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the <see cref="MySqlTransaction"/> within which the <see cref="MySqlCommand"/> executes.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The <see cref="MySqlTransaction"/>. The default value is a null reference (<B>Nothing</B> in Visual Basic).
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
You cannot set the <B>Transaction</B> property if it is already set to a
|
||||||
|
specific value, and the command is in the process of executing. If you set the
|
||||||
|
transaction property to a <see cref="MySqlTransaction"/> object that is not connected
|
||||||
|
to the same <see cref="MySqlConnection"/> as the <see cref="MySqlCommand"/> object,
|
||||||
|
an exception will be thrown the next time you attempt to execute a statement.
|
||||||
|
</remarks>
|
||||||
|
</Transaction>
|
||||||
|
|
||||||
|
<UpdatedRowSource>
|
||||||
|
<summary>
|
||||||
|
Gets or sets how command results are applied to the <see cref="DataRow"/>
|
||||||
|
when used by the <see cref="System.Data.Common.DbDataAdapter.Update"/> method
|
||||||
|
of the <see cref="System.Data.Common.DbDataAdapter"/>.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
One of the <see cref="UpdateRowSource"/> values.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
The default <see cref="System.Data.UpdateRowSource"/> value is
|
||||||
|
<B>Both</B> unless the command is automatically generated (as in the case of the
|
||||||
|
<see cref="MySqlCommandBuilder"/>), in which case the default is <B>None</B>.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</UpdatedRowSource>
|
||||||
|
|
||||||
|
</docs>
|
321
Teknik/docs/MySqlCommandBuilder.xml
Normal file
321
Teknik/docs/MySqlCommandBuilder.xml
Normal file
@ -0,0 +1,321 @@
|
|||||||
|
<docs>
|
||||||
|
<class>
|
||||||
|
<summary>
|
||||||
|
Automatically generates single-table commands used to reconcile changes made to a DataSet with the associated MySQL database. This class cannot be inherited.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
The <see cref="MySqlDataAdapter"/> does not automatically generate the SQL statements required to
|
||||||
|
reconcile changes made to a <see cref="System.Data.DataSet">DataSet</see> with the associated instance of MySQL.
|
||||||
|
However, you can create a <B>MySqlCommandBuilder</B> object to automatically generate SQL statements for
|
||||||
|
single-table updates if you set the <see cref="MySqlDataAdapter.SelectCommand">SelectCommand</see> property
|
||||||
|
of the <B>MySqlDataAdapter</B>. Then, any additional SQL statements that you do not set are generated by the
|
||||||
|
<B>MySqlCommandBuilder</B>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <B>MySqlCommandBuilder</B> registers itself as a listener for <see cref="MySqlDataAdapter.OnRowUpdating">RowUpdating</see>
|
||||||
|
events whenever you set the <see cref="DataAdapter"/> property. You can only associate one
|
||||||
|
<B>MySqlDataAdapter</B> or <B>MySqlCommandBuilder</B> object with each other at one time.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To generate INSERT, UPDATE, or DELETE statements, the <B>MySqlCommandBuilder</B> uses the
|
||||||
|
<B>SelectCommand</B> property to retrieve a required set of metadata automatically. If you change
|
||||||
|
the <B>SelectCommand</B> after the metadata has is retrieved (for example, after the first update), you
|
||||||
|
should call the <see cref="RefreshSchema"/> method to update the metadata.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <B>SelectCommand</B> must also return at least one primary key or unique
|
||||||
|
column. If none are present, an <I>InvalidOperation</I> exception is generated,
|
||||||
|
and the commands are not generated.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <B>MySqlCommandBuilder</B> also uses the <see cref="MySqlCommand.Connection">Connection</see>,
|
||||||
|
<see cref="MySqlCommand.CommandTimeout">CommandTimeout</see>, and <see cref="MySqlCommand.Transaction">Transaction</see>
|
||||||
|
properties referenced by the <B>SelectCommand</B>. The user should call
|
||||||
|
<B>RefreshSchema</B> if any of these properties are modified, or if the
|
||||||
|
<B>SelectCommand</B> itself is replaced. Otherwise the <see cref="MySqlDataAdapter.InsertCommand">InsertCommand</see>,
|
||||||
|
<see cref="MySqlDataAdapter.UpdateCommand">UpdateCommand</see>, and
|
||||||
|
<see cref="MySqlDataAdapter.DeleteCommand">DeleteCommand</see> properties retain
|
||||||
|
their previous values.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If you call <i>Dispose</i>, the <B>MySqlCommandBuilder</B> is disassociated
|
||||||
|
from the <B>MySqlDataAdapter</B>, and the generated commands are no longer used.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
Caution must be used when using MySqlCOmmandBuilder on MySql 4.0 systems. With MySql 4.0,
|
||||||
|
database/schema information is not provided to the connector for a query. This means that
|
||||||
|
a query that pulls columns from two identically named tables in two or more different databases
|
||||||
|
will not cause an exception to be thrown but will not work correctly. Even more dangerous
|
||||||
|
is the situation where your select statement references database X but is executed in
|
||||||
|
database Y and both databases have tables with similar layouts. This situation can cause
|
||||||
|
unwanted changes or deletes.
|
||||||
|
This note does not apply to MySQL versions 4.1 and later.
|
||||||
|
</note>
|
||||||
|
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example uses the <see cref="MySqlCommand"/>, along
|
||||||
|
<see cref="MySqlDataAdapter"/> and <see cref="MySqlConnection"/>, to
|
||||||
|
select rows from a data source. The example is passed an initialized
|
||||||
|
<see cref="System.Data.DataSet"/>, a connection string, a
|
||||||
|
query string that is a SQL SELECT statement, and a string that is the
|
||||||
|
name of the database table. The example then creates a <B>MySqlCommandBuilder</B>.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Shared Function SelectRows(myConnection As String, mySelectQuery As String, myTableName As String) As DataSet
|
||||||
|
Dim myConn As New MySqlConnection(myConnection)
|
||||||
|
Dim myDataAdapter As New MySqlDataAdapter()
|
||||||
|
myDataAdapter.SelectCommand = New MySqlCommand(mySelectQuery, myConn)
|
||||||
|
Dim cb As SqlCommandBuilder = New MySqlCommandBuilder(myDataAdapter)
|
||||||
|
|
||||||
|
myConn.Open()
|
||||||
|
|
||||||
|
Dim ds As DataSet = New DataSet
|
||||||
|
myDataAdapter.Fill(ds, myTableName)
|
||||||
|
|
||||||
|
' Code to modify data in DataSet here
|
||||||
|
|
||||||
|
' Without the MySqlCommandBuilder this line would fail.
|
||||||
|
myDataAdapter.Update(ds, myTableName)
|
||||||
|
|
||||||
|
myConn.Close()
|
||||||
|
End Function 'SelectRows
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static DataSet SelectRows(string myConnection, string mySelectQuery, string myTableName)
|
||||||
|
{
|
||||||
|
MySqlConnection myConn = new MySqlConnection(myConnection);
|
||||||
|
MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
|
||||||
|
myDataAdapter.SelectCommand = new MySqlCommand(mySelectQuery, myConn);
|
||||||
|
MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
|
||||||
|
|
||||||
|
myConn.Open();
|
||||||
|
|
||||||
|
DataSet ds = new DataSet();
|
||||||
|
myDataAdapter.Fill(ds, myTableName);
|
||||||
|
|
||||||
|
//code to modify data in DataSet here
|
||||||
|
|
||||||
|
//Without the MySqlCommandBuilder this line would fail
|
||||||
|
myDataAdapter.Update(ds, myTableName);
|
||||||
|
|
||||||
|
myConn.Close();
|
||||||
|
|
||||||
|
return ds;
|
||||||
|
}
|
||||||
|
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</class>
|
||||||
|
|
||||||
|
<Ctor>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlCommandBuilder"/> class.
|
||||||
|
</summary>
|
||||||
|
</Ctor>
|
||||||
|
|
||||||
|
<Ctor2>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlCommandBuilder"/> class
|
||||||
|
with the associated <see cref="MySqlDataAdapter"/> object.
|
||||||
|
</summary>
|
||||||
|
<param name="adapter">
|
||||||
|
The <see cref="MySqlDataAdapter"/> to use.
|
||||||
|
</param>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
The <see cref="MySqlCommandBuilder"/> registers itself as a listener for
|
||||||
|
<see cref="MySqlDataAdapter.RowUpdating"/> events that are generated by the
|
||||||
|
<see cref="MySqlDataAdapter"/> specified in this property.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When you create a new instance <B>MySqlCommandBuilder</B>, any existing
|
||||||
|
<B>MySqlCommandBuilder</B> associated with this <B>MySqlDataAdapter</B>
|
||||||
|
is released.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</Ctor2>
|
||||||
|
|
||||||
|
|
||||||
|
<DataAdapter>
|
||||||
|
<summary>
|
||||||
|
Gets or sets a <see cref="MySqlDataAdapter"/> object for which SQL statements are automatically generated.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
A <see cref="MySqlDataAdapter"/> object.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
The <see cref="MySqlCommandBuilder"/> registers itself as a listener for
|
||||||
|
<see cref="MySqlDataAdapter.RowUpdating"/> events that are generated by the
|
||||||
|
<see cref="MySqlDataAdapter"/> specified in this property.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When you create a new instance <B>MySqlCommandBuilder</B>, any existing
|
||||||
|
<B>MySqlCommandBuilder</B> associated with this <B>MySqlDataAdapter</B>
|
||||||
|
is released.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</DataAdapter>
|
||||||
|
|
||||||
|
<QuotePrefix>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the beginning character or characters to use when specifying MySQL
|
||||||
|
database objects (for example, tables or columns) whose names contain
|
||||||
|
characters such as spaces or reserved tokens.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The beginning character or characters to use. The default value is `.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
Database objects in MySQL can contain special characters such as spaces that would
|
||||||
|
make normal SQL strings impossible to correctly parse. Use of the <b>QuotePrefix</b>
|
||||||
|
and the <see cref="QuoteSuffix"/> properties allows the <see cref="MySqlCommandBuilder"/>
|
||||||
|
to build SQL commands that handle this situation.
|
||||||
|
</remarks>
|
||||||
|
</QuotePrefix>
|
||||||
|
|
||||||
|
<QuoteSuffix>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the beginning character or characters to use when specifying MySQL
|
||||||
|
database objects (for example, tables or columns) whose names contain
|
||||||
|
characters such as spaces or reserved tokens.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The beginning character or characters to use. The default value is `.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
Database objects in MySQL can contain special characters such as spaces that would
|
||||||
|
make normal SQL strings impossible to correctly parse. Use of the <see cref="QuotePrefix"/>
|
||||||
|
and the <b>QuoteSuffix</b> properties allows the <see cref="MySqlCommandBuilder"/>
|
||||||
|
to build SQL commands that handle this situation.
|
||||||
|
</remarks>
|
||||||
|
</QuoteSuffix>
|
||||||
|
|
||||||
|
<DeriveParameters>
|
||||||
|
<summary>
|
||||||
|
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
</remarks>
|
||||||
|
</DeriveParameters>
|
||||||
|
|
||||||
|
<GetDeleteCommand>
|
||||||
|
<summary>
|
||||||
|
Gets the automatically generated <see cref="MySqlCommand"/> object
|
||||||
|
required to perform deletions on the database.
|
||||||
|
</summary>
|
||||||
|
<returns>
|
||||||
|
The <see cref="MySqlCommand"/> object generated to handle delete operations.
|
||||||
|
</returns>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
An application can use the <B>GetDeleteCommand</B> method for informational
|
||||||
|
or troubleshooting purposes because it returns the <see cref="MySqlCommand"/>
|
||||||
|
object to be executed.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
You can also use <B>GetDeleteCommand</B> as the basis of a modified command.
|
||||||
|
For example, you might call <B>GetDeleteCommand</B> and modify the
|
||||||
|
<see cref="MySqlCommand.CommandTimeout"/> value, and then explicitly set that on the
|
||||||
|
<see cref="MySqlDataAdapter"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
After the SQL statement is first generated, the application must explicitly
|
||||||
|
call <see cref="RefreshSchema"/> if it changes the statement in any way.
|
||||||
|
Otherwise, the <B>GetDeleteCommand</B> will be still be using information
|
||||||
|
from the previous statement, which might not be correct. The SQL statements
|
||||||
|
are first generated either when the application calls
|
||||||
|
<see cref="System.Data.Common.DataAdapter.Update"/> or <B>GetDeleteCommand</B>.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</GetDeleteCommand>
|
||||||
|
|
||||||
|
<GetInsertCommand>
|
||||||
|
<summary>
|
||||||
|
Gets the automatically generated <see cref="MySqlCommand"/> object
|
||||||
|
required to perform insertions on the database.
|
||||||
|
</summary>
|
||||||
|
<returns>
|
||||||
|
The <see cref="MySqlCommand"/> object generated to handle insert operations.
|
||||||
|
</returns>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
An application can use the <B>GetInsertCommand</B> method for informational
|
||||||
|
or troubleshooting purposes because it returns the <see cref="MySqlCommand"/>
|
||||||
|
object to be executed.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
You can also use the <B>GetInsertCommand</B> as the basis of a modified command.
|
||||||
|
For example, you might call <B>GetInsertCommand</B> and modify the
|
||||||
|
<see cref="MySqlCommand.CommandTimeout"/> value, and then explicitly set that on the
|
||||||
|
<see cref="MySqlDataAdapter"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
After the SQL statement is first generated, the application must explicitly
|
||||||
|
call <see cref="RefreshSchema"/> if it changes the statement in any way.
|
||||||
|
Otherwise, the <B>GetInsertCommand</B> will be still be using information
|
||||||
|
from the previous statement, which might not be correct. The SQL statements
|
||||||
|
are first generated either when the application calls
|
||||||
|
<see cref="System.Data.Common.DataAdapter.Update"/> or <B>GetInsertCommand</B>.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</GetInsertCommand>
|
||||||
|
|
||||||
|
<GetUpdateCommand>
|
||||||
|
<summary>
|
||||||
|
Gets the automatically generated <see cref="MySqlCommand"/> object
|
||||||
|
required to perform updates on the database.
|
||||||
|
</summary>
|
||||||
|
<returns>
|
||||||
|
The <see cref="MySqlCommand"/> object generated to handle update operations.
|
||||||
|
</returns>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
An application can use the <B>GetUpdateCommand</B> method for informational
|
||||||
|
or troubleshooting purposes because it returns the <see cref="MySqlCommand"/>
|
||||||
|
object to be executed.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
You can also use <B>GetUpdateCommand</B> as the basis of a modified command.
|
||||||
|
For example, you might call <B>GetUpdateCommand</B> and modify the
|
||||||
|
<see cref="MySqlCommand.CommandTimeout"/> value, and then explicitly set that on the
|
||||||
|
<see cref="MySqlDataAdapter"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
After the SQL statement is first generated, the application must explicitly
|
||||||
|
call <see cref="RefreshSchema"/> if it changes the statement in any way.
|
||||||
|
Otherwise, the <B>GetUpdateCommand</B> will be still be using information
|
||||||
|
from the previous statement, which might not be correct. The SQL statements
|
||||||
|
are first generated either when the application calls
|
||||||
|
<see cref="System.Data.Common.DataAdapter.Update"/> or <B>GetUpdateCommand</B>.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</GetUpdateCommand>
|
||||||
|
|
||||||
|
<RefreshSchema>
|
||||||
|
<summary>
|
||||||
|
Refreshes the database schema information used to generate INSERT, UPDATE, or
|
||||||
|
DELETE statements.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
An application should call <B>RefreshSchema</B> whenever the SELECT statement
|
||||||
|
associated with the <see cref="MySqlCommandBuilder"/> changes.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
An application should call <B>RefreshSchema</B> whenever the
|
||||||
|
<see cref="MySqlDataAdapter.SelectCommand"/> value of the <see cref="MySqlDataAdapter"/> changes.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</RefreshSchema>
|
||||||
|
|
||||||
|
</docs>
|
1248
Teknik/docs/MySqlConnection.xml
Normal file
1248
Teknik/docs/MySqlConnection.xml
Normal file
File diff suppressed because it is too large
Load Diff
55
Teknik/docs/MySqlConnectionStringBuilder.xml
Normal file
55
Teknik/docs/MySqlConnectionStringBuilder.xml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<docs>
|
||||||
|
<Server>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the name or address of the MySQL instance to connect to.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
If this property is not set, then the provider will attempt to
|
||||||
|
connect to <b>localhost</b> even though this property will return
|
||||||
|
<b>String.Empty</b>.
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
</example>
|
||||||
|
</Server>
|
||||||
|
|
||||||
|
<Database>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the name of the database that should be selected
|
||||||
|
when the connection is first opened.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
There is no default for this property and, if not set, the
|
||||||
|
connection will not have a current database until one is set
|
||||||
|
using the <see cref="ChangeDatabase"/> method.
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
</example>
|
||||||
|
</Database>
|
||||||
|
|
||||||
|
<ConnectionProtocol>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the connection protocol that is being used for this
|
||||||
|
connection.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
</example>
|
||||||
|
</ConnectionProtocol>
|
||||||
|
|
||||||
|
|
||||||
|
<PipeName>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the name of the named pipe object that the provider
|
||||||
|
should use.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
This property has no effect unless the <see cref="ConnectionProtocol"/>
|
||||||
|
property has been set to <b>NamedPipe</b>.
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
</example>
|
||||||
|
</PipeName>
|
||||||
|
|
||||||
|
|
||||||
|
</docs>
|
801
Teknik/docs/MySqlDataAdapter.xml
Normal file
801
Teknik/docs/MySqlDataAdapter.xml
Normal file
@ -0,0 +1,801 @@
|
|||||||
|
<docs>
|
||||||
|
<class>
|
||||||
|
<summary>
|
||||||
|
Represents a set of data commands and a database connection that are used to fill a dataset and update a MySQL database. This class cannot be inherited.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
The <B>MySQLDataAdapter</B>, serves as a bridge between a <see cref="System.Data.DataSet"/>
|
||||||
|
and MySQL for retrieving and saving data. The <B>MySQLDataAdapter</B> provides this
|
||||||
|
bridge by mapping <see cref="DbDataAdapter.Fill(DataSet)"/>, which changes the data in the
|
||||||
|
<B>DataSet</B> to match the data in the data source, and <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/>,
|
||||||
|
which changes the data in the data source to match the data in the <B>DataSet</B>,
|
||||||
|
using the appropriate SQL statements against the data source.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When the <B>MySQLDataAdapter</B> fills a <B>DataSet</B>, it will create the necessary
|
||||||
|
tables and columns for the returned data if they do not already exist. However, primary
|
||||||
|
key information will not be included in the implicitly created schema unless the
|
||||||
|
<see cref="System.Data.MissingSchemaAction"/> property is set to <see cref="System.Data.MissingSchemaAction.AddWithKey"/>.
|
||||||
|
You may also have the <B>MySQLDataAdapter</B> create the schema of the <B>DataSet</B>,
|
||||||
|
including primary key information, before filling it with data using <see cref="System.Data.Common.DbDataAdapter.FillSchema(DataTable, SchemaType)"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
<B>MySQLDataAdapter</B> is used in conjunction with <see cref="MySqlConnection"/>
|
||||||
|
and <see cref="MySqlCommand"/> to increase performance when connecting to a MySQL database.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The <B>MySQLDataAdapter</B> also includes the <see cref="MySqlDataAdapter.SelectCommand"/>,
|
||||||
|
<see cref="MySqlDataAdapter.InsertCommand"/>, <see cref="MySqlDataAdapter.DeleteCommand"/>,
|
||||||
|
<see cref="MySqlDataAdapter.UpdateCommand"/>, and <see cref="DataAdapter.TableMappings"/>
|
||||||
|
properties to facilitate the loading and updating of data.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When an instance of <B>MySQLDataAdapter</B> is created, the read/write properties
|
||||||
|
are set to initial values. For a list of these values, see the <B>MySQLDataAdapter</B>
|
||||||
|
constructor.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
Please be aware that the <see cref="DataColumn"/> class allows only
|
||||||
|
Int16, Int32, and Int64 to have the AutoIncrement property set.
|
||||||
|
If you plan to use autoincremement columns with MySQL, you should consider
|
||||||
|
using signed integer columns.
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and a <see cref="MySqlConnection"/>.
|
||||||
|
The <B>MySqlConnection</B> is opened and set as the <see cref="MySqlCommand.Connection"/> for the
|
||||||
|
<B>MySqlCommand</B>. The example then calls <see cref="MySqlCommand.ExecuteNonQuery"/>, and closes
|
||||||
|
the connection. To accomplish this, the <B>ExecuteNonQuery</B> is
|
||||||
|
passed a connection string and a query string that is a SQL INSERT
|
||||||
|
statement.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Function SelectRows(dataSet As DataSet, connection As String, query As String) As DataSet
|
||||||
|
Dim conn As New MySqlConnection(connection)
|
||||||
|
Dim adapter As New MySqlDataAdapter()
|
||||||
|
adapter.SelectCommand = new MySqlCommand(query, conn)
|
||||||
|
adapter.Fill(dataset)
|
||||||
|
Return dataset
|
||||||
|
End Function
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public DataSet SelectRows(DataSet dataset,string connection,string query)
|
||||||
|
{
|
||||||
|
MySqlConnection conn = new MySqlConnection(connection);
|
||||||
|
MySqlDataAdapter adapter = new MySqlDataAdapter();
|
||||||
|
adapter.SelectCommand = new MySqlCommand(query, conn);
|
||||||
|
adapter.Fill(dataset);
|
||||||
|
return dataset;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</class>
|
||||||
|
|
||||||
|
<Ctor>
|
||||||
|
<overloads></overloads>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the MySqlDataAdapter class.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When an instance of <see cref="MySqlDataAdapter"/> is created,
|
||||||
|
the following read/write properties are set to the following initial
|
||||||
|
values.
|
||||||
|
</para>
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingMappingAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingMappingAction.Passthrough</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingSchemaAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingSchemaAction.Add</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value of any of these properties through a separate call
|
||||||
|
to the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets some of
|
||||||
|
its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateSqlDataAdapter()
|
||||||
|
Dim conn As MySqlConnection = New MySqlConnection("Data Source=localhost;" & _
|
||||||
|
"database=test")
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
|
||||||
|
|
||||||
|
da.SelectCommand = New MySqlCommand("SELECT id, name FROM mytable", conn)
|
||||||
|
da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _
|
||||||
|
"VALUES (@id, @name)", conn)
|
||||||
|
da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=@id, name=@name " & _
|
||||||
|
"WHERE id=@oldId", conn)
|
||||||
|
da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn)
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static void CreateSqlDataAdapter()
|
||||||
|
{
|
||||||
|
MySqlConnection conn = new MySqlConnection("Data Source=localhost;database=test");
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter();
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
|
||||||
|
|
||||||
|
da.SelectCommand = new MySqlCommand("SELECT id, name FROM mytable", conn);
|
||||||
|
da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " +
|
||||||
|
"VALUES (@id, @name)", conn);
|
||||||
|
da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=@id, name=@name " +
|
||||||
|
"WHERE id=@oldId", conn);
|
||||||
|
da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn);
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Ctor>
|
||||||
|
|
||||||
|
<Ctor1>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlDataAdapter"/> class with
|
||||||
|
the specified <see cref="MySqlCommand"/> as the <see cref="SelectCommand"/>
|
||||||
|
property.
|
||||||
|
</summary>
|
||||||
|
<param name="selectCommand">
|
||||||
|
<see cref="MySqlCommand"/> that is a SQL SELECT statement or stored procedure and is set
|
||||||
|
as the <see cref="SelectCommand"/> property of the <see cref="MySqlDataAdapter"/>.
|
||||||
|
</param>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When an instance of <see cref="MySqlDataAdapter"/> is created,
|
||||||
|
the following read/write properties are set to the following initial
|
||||||
|
values.
|
||||||
|
</para>
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingMappingAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingMappingAction.Passthrough</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingSchemaAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingSchemaAction.Add</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value of any of these properties through a separate call
|
||||||
|
to the property.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When <B>SelectCommand</B> (or any of the other command properties) is assigned
|
||||||
|
to a previously created <see cref="MySqlCommand"/>, the <B>MySqlCommand</B> is not cloned.
|
||||||
|
The <B>SelectCommand</B> maintains a reference to the previously created <B>MySqlCommand</B>
|
||||||
|
object.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets some of
|
||||||
|
its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateSqlDataAdapter()
|
||||||
|
Dim conn As MySqlConnection = New MySqlConnection("Data Source=localhost;" & _
|
||||||
|
"database=test")
|
||||||
|
Dim cmd as new MySqlCommand("SELECT id, name FROM mytable", conn)
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter(cmd)
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
|
||||||
|
|
||||||
|
da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _
|
||||||
|
"VALUES (@id, @name)", conn)
|
||||||
|
da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=@id, name=@name " & _
|
||||||
|
"WHERE id=@oldId", conn)
|
||||||
|
da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn)
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static void CreateSqlDataAdapter()
|
||||||
|
{
|
||||||
|
MySqlConnection conn = new MySqlConnection("Data Source=localhost;database=test");
|
||||||
|
MySqlCommand cmd = new MySqlCommand("SELECT id, name FROM mytable", conn);
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
|
||||||
|
|
||||||
|
da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " +
|
||||||
|
"VALUES (@id, @name)", conn);
|
||||||
|
da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=@id, name=@name " +
|
||||||
|
"WHERE id=@oldId", conn);
|
||||||
|
da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn);
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Ctor1>
|
||||||
|
|
||||||
|
<Ctor2>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlDataAdapter"/> class with
|
||||||
|
a <see cref="SelectCommand"/> and a <see cref="MySqlConnection"/> object.
|
||||||
|
</summary>
|
||||||
|
<param name="selectCommandText">
|
||||||
|
A <b>String</b> that is a SQL SELECT statement or stored procedure to be used by
|
||||||
|
the <see cref="SelectCommand"/> property of the <see cref="MySqlDataAdapter"/>.
|
||||||
|
</param>
|
||||||
|
<param name="connection">
|
||||||
|
A <see cref="MySqlConnection"/> that represents the connection.
|
||||||
|
</param>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
This implementation of the <see cref="MySqlDataAdapter"/> opens and closes a <see cref="MySqlConnection"/>
|
||||||
|
if it is not already open. This can be useful in a an application that must call the
|
||||||
|
<see cref="DbDataAdapter.Fill(DataSet)"/> method for two or more <B>MySqlDataAdapter</B> objects.
|
||||||
|
If the <B>MySqlConnection</B> is already open, you must explicitly call
|
||||||
|
<see cref="MySqlConnection.Close"/> or <see cref="MySqlConnection.Dispose()"/> to close it.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When an instance of <see cref="MySqlDataAdapter"/> is created,
|
||||||
|
the following read/write properties are set to the following initial
|
||||||
|
values.
|
||||||
|
</para>
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingMappingAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingMappingAction.Passthrough</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingSchemaAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingSchemaAction.Add</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value of any of these properties through a separate call
|
||||||
|
to the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets some of
|
||||||
|
its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateSqlDataAdapter()
|
||||||
|
Dim conn As MySqlConnection = New MySqlConnection("Data Source=localhost;" & _
|
||||||
|
"database=test")
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter("SELECT id, name FROM mytable", conn)
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
|
||||||
|
|
||||||
|
da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _
|
||||||
|
"VALUES (@id, @name)", conn)
|
||||||
|
da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=@id, name=@name " & _
|
||||||
|
"WHERE id=@oldId", conn)
|
||||||
|
da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn)
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static void CreateSqlDataAdapter()
|
||||||
|
{
|
||||||
|
MySqlConnection conn = new MySqlConnection("Data Source=localhost;database=test");
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter("SELECT id, name FROM mytable", conn);
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
|
||||||
|
|
||||||
|
da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " +
|
||||||
|
"VALUES (@id, @name)", conn);
|
||||||
|
da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=@id, name=@name " +
|
||||||
|
"WHERE id=@oldId", conn);
|
||||||
|
da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn);
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Ctor2>
|
||||||
|
|
||||||
|
<Ctor3>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlDataAdapter"/> class with
|
||||||
|
a <see cref="SelectCommand"/> and a connection string.
|
||||||
|
</summary>
|
||||||
|
<param name="selectCommandText">
|
||||||
|
A <see cref="string"/> that is a SQL SELECT statement or stored procedure to
|
||||||
|
be used by the <see cref="SelectCommand"/> property of the <see cref="MySqlDataAdapter"/>.
|
||||||
|
</param>
|
||||||
|
<param name="selectConnString">The connection string</param>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When an instance of <see cref="MySqlDataAdapter"/> is created,
|
||||||
|
the following read/write properties are set to the following initial
|
||||||
|
values.
|
||||||
|
</para>
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingMappingAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingMappingAction.Passthrough</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingSchemaAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingSchemaAction.Add</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value of any of these properties through a separate call
|
||||||
|
to the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets some of
|
||||||
|
its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateSqlDataAdapter()
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter("SELECT id, name FROM mytable", "Data Source=localhost;database=test")
|
||||||
|
Dim conn As MySqlConnection = da.SelectCommand.Connection
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
|
||||||
|
|
||||||
|
da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _
|
||||||
|
"VALUES (@id, @name)", conn)
|
||||||
|
da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=@id, name=@name " & _
|
||||||
|
"WHERE id=@oldId", conn)
|
||||||
|
da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn)
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static void CreateSqlDataAdapter()
|
||||||
|
{
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter("SELECT id, name FROM mytable", "Data Source=localhost;database=test");
|
||||||
|
MySqlConnection conn = da.SelectCommand.Connection;
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
|
||||||
|
|
||||||
|
da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " +
|
||||||
|
"VALUES (@id, @name)", conn);
|
||||||
|
da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=@id, name=@name " +
|
||||||
|
"WHERE id=@oldId", conn);
|
||||||
|
da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn);
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Ctor3>
|
||||||
|
|
||||||
|
<DeleteCommand>
|
||||||
|
<summary>
|
||||||
|
Gets or sets a SQL statement or stored procedure used to delete records from the data set.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
A <see cref="MySqlCommand"/> used during <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/> to delete records in the
|
||||||
|
database that correspond to deleted rows in the <see cref="DataSet"/>.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
During <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/>, if this property is not set and primary key information
|
||||||
|
is present in the <see cref="DataSet"/>, the <B>DeleteCommand</B> can be generated
|
||||||
|
automatically if you set the <see cref="SelectCommand"/> property and use the
|
||||||
|
<see cref="MySqlCommandBuilder"/>. Then, any additional commands that you do not set are
|
||||||
|
generated by the <B>MySqlCommandBuilder</B>. This generation logic requires key column
|
||||||
|
information to be present in the <B>DataSet</B>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When <B>DeleteCommand</B> is assigned to a previously created <see cref="MySqlCommand"/>,
|
||||||
|
the <B>MySqlCommand</B> is not cloned. The <B>DeleteCommand</B> maintains a reference
|
||||||
|
to the previously created <B>MySqlCommand</B> object.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets the
|
||||||
|
<see cref="SelectCommand"/> and <B>DeleteCommand</B> properties. It assumes you have already
|
||||||
|
created a <see cref="MySqlConnection"/> object.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter
|
||||||
|
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter()
|
||||||
|
Dim cmd As MySqlCommand
|
||||||
|
Dim parm As MySqlParameter
|
||||||
|
|
||||||
|
' Create the SelectCommand.
|
||||||
|
cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15)
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15)
|
||||||
|
|
||||||
|
da.SelectCommand = cmd
|
||||||
|
|
||||||
|
' Create the DeleteCommand.
|
||||||
|
cmd = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn)
|
||||||
|
|
||||||
|
parm = cmd.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
parm.SourceVersion = DataRowVersion.Original
|
||||||
|
|
||||||
|
da.DeleteCommand = cmd
|
||||||
|
|
||||||
|
Return da
|
||||||
|
End Function
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn)
|
||||||
|
{
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter();
|
||||||
|
MySqlCommand cmd;
|
||||||
|
MySqlParameter parm;
|
||||||
|
|
||||||
|
// Create the SelectCommand.
|
||||||
|
cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn);
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15);
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15);
|
||||||
|
|
||||||
|
da.SelectCommand = cmd;
|
||||||
|
|
||||||
|
// Create the DeleteCommand.
|
||||||
|
cmd = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn);
|
||||||
|
|
||||||
|
parm = cmd.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
parm.SourceVersion = DataRowVersion.Original;
|
||||||
|
|
||||||
|
da.DeleteCommand = cmd;
|
||||||
|
|
||||||
|
return da;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</DeleteCommand>
|
||||||
|
|
||||||
|
<InsertCommand>
|
||||||
|
<summary>
|
||||||
|
Gets or sets a SQL statement or stored procedure used to insert records into the data set.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
A <see cref="MySqlCommand"/> used during <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/> to insert records into the
|
||||||
|
database that correspond to new rows in the <see cref="DataSet"/>.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
During <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/>, if this property is not set and primary key information
|
||||||
|
is present in the <see cref="DataSet"/>, the <B>InsertCommand</B> can be generated
|
||||||
|
automatically if you set the <see cref="SelectCommand"/> property and use the
|
||||||
|
<see cref="MySqlCommandBuilder"/>. Then, any additional commands that you do not set are
|
||||||
|
generated by the <B>MySqlCommandBuilder</B>. This generation logic requires key column
|
||||||
|
information to be present in the <B>DataSet</B>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When <B>InsertCommand</B> is assigned to a previously created <see cref="MySqlCommand"/>,
|
||||||
|
the <B>MySqlCommand</B> is not cloned. The <B>InsertCommand</B> maintains a reference
|
||||||
|
to the previously created <B>MySqlCommand</B> object.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
If execution of this command returns rows, these rows may be added to the <B>DataSet</B>
|
||||||
|
depending on how you set the <see cref="MySqlCommand.UpdatedRowSource"/> property of the <B>MySqlCommand</B> object.
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets the
|
||||||
|
<see cref="SelectCommand"/> and <B>InsertCommand</B> properties. It assumes you have already
|
||||||
|
created a <see cref="MySqlConnection"/> object.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter
|
||||||
|
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter()
|
||||||
|
Dim cmd As MySqlCommand
|
||||||
|
Dim parm As MySqlParameter
|
||||||
|
|
||||||
|
' Create the SelectCommand.
|
||||||
|
cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15)
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15)
|
||||||
|
|
||||||
|
da.SelectCommand = cmd
|
||||||
|
|
||||||
|
' Create the InsertCommand.
|
||||||
|
cmd = New MySqlCommand("INSERT INTO mytable (id,name) VALUES (@id, @name)", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add( "@id", MySqlDbType.VarChar, 15, "id" )
|
||||||
|
cmd.Parameters.Add( "@name", MySqlDbType.VarChar, 15, "name" )
|
||||||
|
da.InsertCommand = cmd
|
||||||
|
|
||||||
|
Return da
|
||||||
|
End Function
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn)
|
||||||
|
{
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter();
|
||||||
|
MySqlCommand cmd;
|
||||||
|
MySqlParameter parm;
|
||||||
|
|
||||||
|
// Create the SelectCommand.
|
||||||
|
cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn);
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15);
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15);
|
||||||
|
|
||||||
|
da.SelectCommand = cmd;
|
||||||
|
|
||||||
|
// Create the InsertCommand.
|
||||||
|
cmd = new MySqlCommand("INSERT INTO mytable (id,name) VALUES (@id,@name)", conn);
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15, "id" );
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15, "name" );
|
||||||
|
|
||||||
|
da.InsertCommand = cmd;
|
||||||
|
|
||||||
|
return da;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</InsertCommand>
|
||||||
|
|
||||||
|
<UpdateCommand>
|
||||||
|
<summary>
|
||||||
|
Gets or sets a SQL statement or stored procedure used to updated records in the data source.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
A <see cref="MySqlCommand"/> used during <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/> to update records in the
|
||||||
|
database with data from the <see cref="DataSet"/>.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
During <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/>, if this property is not set and primary key information
|
||||||
|
is present in the <see cref="DataSet"/>, the <B>UpdateCommand</B> can be generated
|
||||||
|
automatically if you set the <see cref="SelectCommand"/> property and use the
|
||||||
|
<see cref="MySqlCommandBuilder"/>. Then, any additional commands that you do not set are
|
||||||
|
generated by the <B>MySqlCommandBuilder</B>. This generation logic requires key column
|
||||||
|
information to be present in the <B>DataSet</B>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When <B>UpdateCommand</B> is assigned to a previously created <see cref="MySqlCommand"/>,
|
||||||
|
the <B>MySqlCommand</B> is not cloned. The <B>UpdateCommand</B> maintains a reference
|
||||||
|
to the previously created <B>MySqlCommand</B> object.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
If execution of this command returns rows, these rows may be merged with the DataSet
|
||||||
|
depending on how you set the <see cref="MySqlCommand.UpdatedRowSource"/> property of the <B>MySqlCommand</B> object.
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets the
|
||||||
|
<see cref="SelectCommand"/> and <B>UpdateCommand</B> properties. It assumes you have already
|
||||||
|
created a <see cref="MySqlConnection"/> object.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter
|
||||||
|
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter()
|
||||||
|
Dim cmd As MySqlCommand
|
||||||
|
Dim parm As MySqlParameter
|
||||||
|
|
||||||
|
' Create the SelectCommand.
|
||||||
|
cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15)
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15)
|
||||||
|
|
||||||
|
da.SelectCommand = cmd
|
||||||
|
|
||||||
|
' Create the UpdateCommand.
|
||||||
|
cmd = New MySqlCommand("UPDATE mytable SET id=@id, name=@name WHERE id=@oldId", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add( "@id", MySqlDbType.VarChar, 15, "id" )
|
||||||
|
cmd.Parameters.Add( "@name", MySqlDbType.VarChar, 15, "name" )
|
||||||
|
|
||||||
|
parm = cmd.Parameters.Add("@oldId", MySqlDbType.VarChar, 15, "id")
|
||||||
|
parm.SourceVersion = DataRowVersion.Original
|
||||||
|
|
||||||
|
da.UpdateCommand = cmd
|
||||||
|
|
||||||
|
Return da
|
||||||
|
End Function
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn)
|
||||||
|
{
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter();
|
||||||
|
MySqlCommand cmd;
|
||||||
|
MySqlParameter parm;
|
||||||
|
|
||||||
|
// Create the SelectCommand.
|
||||||
|
cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn);
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15);
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15);
|
||||||
|
|
||||||
|
da.SelectCommand = cmd;
|
||||||
|
|
||||||
|
// Create the UpdateCommand.
|
||||||
|
cmd = new MySqlCommand("UPDATE mytable SET id=@id, name=@name WHERE id=@oldId", conn);
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15, "id" );
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15, "name" );
|
||||||
|
|
||||||
|
parm = cmd.Parameters.Add( "@oldId", MySqlDbType.VarChar, 15, "id" );
|
||||||
|
parm.SourceVersion = DataRowVersion.Original;
|
||||||
|
|
||||||
|
da.UpdateCommand = cmd;
|
||||||
|
|
||||||
|
return da;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</UpdateCommand>
|
||||||
|
|
||||||
|
<SelectCommand>
|
||||||
|
<summary>
|
||||||
|
Gets or sets a SQL statement or stored procedure used to select records in the data source.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
A <see cref="MySqlCommand"/> used during <see cref="System.Data.Common.DbDataAdapter.Fill(DataSet)"/> to select records from the
|
||||||
|
database for placement in the <see cref="DataSet"/>.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When <B>SelectCommand</B> is assigned to a previously created <see cref="MySqlCommand"/>,
|
||||||
|
the <B>MySqlCommand</B> is not cloned. The <B>SelectCommand</B> maintains a reference to the
|
||||||
|
previously created <B>MySqlCommand</B> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If the <B>SelectCommand</B> does not return any rows, no tables are added to the
|
||||||
|
<see cref="DataSet"/>, and no exception is raised.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets the
|
||||||
|
<see cref="SelectCommand"/> and <B>InsertCommand</B> properties. It assumes you have already
|
||||||
|
created a <see cref="MySqlConnection"/> object.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter
|
||||||
|
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter()
|
||||||
|
Dim cmd As MySqlCommand
|
||||||
|
Dim parm As MySqlParameter
|
||||||
|
|
||||||
|
' Create the SelectCommand.
|
||||||
|
cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15)
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15)
|
||||||
|
|
||||||
|
da.SelectCommand = cmd
|
||||||
|
|
||||||
|
' Create the InsertCommand.
|
||||||
|
cmd = New MySqlCommand("INSERT INTO mytable (id,name) VALUES (@id, @name)", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add( "@id", MySqlDbType.VarChar, 15, "id" )
|
||||||
|
cmd.Parameters.Add( "@name", MySqlDbType.VarChar, 15, "name" )
|
||||||
|
da.InsertCommand = cmd
|
||||||
|
|
||||||
|
Return da
|
||||||
|
End Function
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn)
|
||||||
|
{
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter();
|
||||||
|
MySqlCommand cmd;
|
||||||
|
MySqlParameter parm;
|
||||||
|
|
||||||
|
// Create the SelectCommand.
|
||||||
|
cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn);
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15);
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15);
|
||||||
|
|
||||||
|
da.SelectCommand = cmd;
|
||||||
|
|
||||||
|
// Create the InsertCommand.
|
||||||
|
cmd = new MySqlCommand("INSERT INTO mytable (id,name) VALUES (@id,@name)", conn);
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15, "id" );
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15, "name" );
|
||||||
|
|
||||||
|
da.InsertCommand = cmd;
|
||||||
|
|
||||||
|
return da;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</SelectCommand>
|
||||||
|
|
||||||
|
</docs>
|
452
Teknik/docs/MySqlDataReader.xml
Normal file
452
Teknik/docs/MySqlDataReader.xml
Normal file
@ -0,0 +1,452 @@
|
|||||||
|
<docs>
|
||||||
|
<ClassSummary>
|
||||||
|
<summary>
|
||||||
|
Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
To create a <B>MySQLDataReader</B>, you must call the <see cref="MySqlCommand.ExecuteReader()"/>
|
||||||
|
method of the <see cref="MySqlCommand"/> object, rather than directly using a constructor.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
While the <B>MySqlDataReader</B> is in use, the associated <see cref="MySqlConnection"/>
|
||||||
|
is busy serving the <B>MySqlDataReader</B>, and no other operations can be performed
|
||||||
|
on the <B>MySqlConnection</B> other than closing it. This is the case until the
|
||||||
|
<see cref="MySqlDataReader.Close"/> method of the <B>MySqlDataReader</B> is called.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
<see cref="MySqlDataReader.IsClosed"/> and <see cref="MySqlDataReader.RecordsAffected"/>
|
||||||
|
are the only properties that you can call after the <B>MySqlDataReader</B> is
|
||||||
|
closed. Though the <B>RecordsAffected</B> property may be accessed at any time
|
||||||
|
while the <B>MySqlDataReader</B> exists, always call <B>Close</B> before returning
|
||||||
|
the value of <B>RecordsAffected</B> to ensure an accurate return value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
For optimal performance, <B>MySqlDataReader</B> avoids creating
|
||||||
|
unnecessary objects or making unnecessary copies of data. As a result, multiple calls
|
||||||
|
to methods such as <see cref="MySqlDataReader.GetValue"/> return a reference to the
|
||||||
|
same object. Use caution if you are modifying the underlying value of the objects
|
||||||
|
returned by methods such as <B>GetValue</B>.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlConnection"/>,
|
||||||
|
a <see cref="MySqlCommand"/>, and a <B>MySqlDataReader</B>. The example reads through
|
||||||
|
the data, writing it out to the console. Finally, the example closes the <B>MySqlDataReader</B>, then the
|
||||||
|
<B>MySqlConnection</B>.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub ReadMyData(myConnString As String)
|
||||||
|
Dim mySelectQuery As String = "SELECT OrderID, CustomerID FROM Orders"
|
||||||
|
Dim myConnection As New MySqlConnection(myConnString)
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
|
||||||
|
myConnection.Open()
|
||||||
|
Dim myReader As MySqlDataReader
|
||||||
|
myReader = myCommand.ExecuteReader()
|
||||||
|
' Always call Read before accessing data.
|
||||||
|
While myReader.Read()
|
||||||
|
Console.WriteLine((myReader.GetInt32(0) & ", " & myReader.GetString(1)))
|
||||||
|
End While
|
||||||
|
' always call Close when done reading.
|
||||||
|
myReader.Close()
|
||||||
|
' Close the connection when done with it.
|
||||||
|
myConnection.Close()
|
||||||
|
End Sub 'ReadMyData
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void ReadMyData(string myConnString) {
|
||||||
|
string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders";
|
||||||
|
MySqlConnection myConnection = new MySqlConnection(myConnString);
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery,myConnection);
|
||||||
|
myConnection.Open();
|
||||||
|
MySqlDataReader myReader;
|
||||||
|
myReader = myCommand.ExecuteReader();
|
||||||
|
// Always call Read before accessing data.
|
||||||
|
while (myReader.Read()) {
|
||||||
|
Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
|
||||||
|
}
|
||||||
|
// always call Close when done reading.
|
||||||
|
myReader.Close();
|
||||||
|
// Close the connection when done with it.
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</ClassSummary>
|
||||||
|
|
||||||
|
<GetBytes>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
<B>GetBytes</B> returns the number of available bytes in the field. In most
|
||||||
|
cases this is the exact length of the field. However, the number returned may be
|
||||||
|
less than the true length of the field if <B>GetBytes</B> has already been used
|
||||||
|
to obtain bytes from the field. This may be the case, for example, if the
|
||||||
|
<see cref="MySqlDataReader"/> is reading a large data structure into a buffer.
|
||||||
|
For more information, see the <B>SequentialAccess</B> setting for
|
||||||
|
<see cref="MySqlCommand.CommandBehavior"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If you pass a buffer that is a null reference (<B>Nothing</B> in Visual
|
||||||
|
Basic), <B>GetBytes</B> returns the length of the field in bytes.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore the data retrieved must already be a
|
||||||
|
byte array.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</GetBytes>
|
||||||
|
|
||||||
|
<GetTimeSpan>
|
||||||
|
<overloads/>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="TimeSpan"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Time</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The zero-based column ordinal or column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetTimeSpan>
|
||||||
|
|
||||||
|
<GetDateTime>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="DateTime"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>DateTime</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
MySql allows date columns to contain the value '0000-00-00' and datetime
|
||||||
|
columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
|
||||||
|
or represent these values. To read a datetime value from a column that might
|
||||||
|
contain zero values, use <see cref="GetMySqlDateTime(int)"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The behavior of reading a zero datetime column using this method is defined by the
|
||||||
|
<i>ZeroDateTimeBehavior</i> connection string option. For more information on this option,
|
||||||
|
please refer to <see cref="MySqlConnection.ConnectionString"/>.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetDateTime>
|
||||||
|
|
||||||
|
<GetDateTimeS>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="DateTime"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>DateTime</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
MySql allows date columns to contain the value '0000-00-00' and datetime
|
||||||
|
columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
|
||||||
|
or represent these values. To read a datetime value from a column that might
|
||||||
|
contain zero values, use <see cref="GetMySqlDateTime(int)"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The behavior of reading a zero datetime column using this method is defined by the
|
||||||
|
<i>ZeroDateTimeBehavior</i> connection string option. For more information on this option,
|
||||||
|
please refer to <see cref="MySqlConnection.ConnectionString"/>.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetDateTimeS>
|
||||||
|
|
||||||
|
<GetMySqlDateTime>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="MySql.Data.Types.MySqlDateTime"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>DateTime</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The zero-based column ordinal or column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetMySqlDateTime>
|
||||||
|
|
||||||
|
<GetString>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="String"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>String</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetString>
|
||||||
|
|
||||||
|
<GetStringS>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="String"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>String</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetStringS>
|
||||||
|
|
||||||
|
<GetDecimal>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="Decimal"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Decimal</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetDecimal>
|
||||||
|
|
||||||
|
<GetDecimalS>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="Decimal"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Decimal</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetDecimalS>
|
||||||
|
|
||||||
|
<GetDouble>
|
||||||
|
<summary>Gets the value of the specified column as a double-precision floating point number.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Double</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetDouble>
|
||||||
|
|
||||||
|
<GetDoubleS>
|
||||||
|
<summary>Gets the value of the specified column as a double-precision floating point number.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Double</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetDoubleS>
|
||||||
|
|
||||||
|
<GetFloat>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a single-precision floating point number.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Float</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetFloat>
|
||||||
|
|
||||||
|
<GetFloatS>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a single-precision floating point number.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Float</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetFloatS>
|
||||||
|
|
||||||
|
<GetGiud>
|
||||||
|
<summary>Gets the value of the specified column as a globally-unique identifier (GUID).</summary>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetGiud>
|
||||||
|
|
||||||
|
<GetGiudS>
|
||||||
|
<summary>Gets the value of the specified column as a globally-unique identifier (GUID).</summary>
|
||||||
|
<param name="column">The column name</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetGiudS>
|
||||||
|
|
||||||
|
<GetInt16>
|
||||||
|
<summary>Gets the value of the specified column as a 16-bit signed integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>16 bit integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetInt16>
|
||||||
|
|
||||||
|
<GetInt16S>
|
||||||
|
<summary>Gets the value of the specified column as a 16-bit signed integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; threfore, the data retrieved must already be a <b>16 bit integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetInt16S>
|
||||||
|
|
||||||
|
<GetInt32>
|
||||||
|
<summary>Gets the value of the specified column as a 32-bit signed integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>32 bit integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetInt32>
|
||||||
|
|
||||||
|
<GetInt32S>
|
||||||
|
<summary>Gets the value of the specified column as a 32-bit signed integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>32 bit integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetInt32S>
|
||||||
|
|
||||||
|
<GetInt64>
|
||||||
|
<summary>Gets the value of the specified column as a 64-bit signed integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>64 bit integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetInt64>
|
||||||
|
|
||||||
|
<GetInt64S>
|
||||||
|
<summary>Gets the value of the specified column as a 64-bit signed integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>64 bit integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetInt64S>
|
||||||
|
|
||||||
|
<GetUInt16>
|
||||||
|
<summary>Gets the value of the specified column as a 16-bit unsigned integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>16 bit unsigned integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The zero-based column ordinal or column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetUInt16>
|
||||||
|
|
||||||
|
<GetUInt32>
|
||||||
|
<summary>Gets the value of the specified column as a 32-bit unsigned integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>32 bit unsigned integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The zero-based column ordinal or column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetUInt32>
|
||||||
|
|
||||||
|
<GetUInt64>
|
||||||
|
<summary>Gets the value of the specified column as a 64-bit unsigned integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>64 bit unsigned integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The zero-based column ordinal or column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetUInt64>
|
||||||
|
|
||||||
|
</docs>
|
53
Teknik/docs/MySqlException.xml
Normal file
53
Teknik/docs/MySqlException.xml
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<MyDocs>
|
||||||
|
<MyMembers name="Class">
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
This class is created whenever the MySql Data Provider encounters an error generated from the server.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Any open connections are not automatically closed when an exception is thrown. If
|
||||||
|
the client application determines that the exception is fatal, it should close any open
|
||||||
|
<see cref="MySqlDataReader"/> objects or <see cref="MySqlConnection"/> objects.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example generates a <B>MySqlException</B> due to a missing server,
|
||||||
|
and then displays the exception.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub ShowException()
|
||||||
|
Dim mySelectQuery As String = "SELECT column1 FROM table1"
|
||||||
|
Dim myConnection As New MySqlConnection ("Data Source=localhost;Database=Sample;")
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
|
||||||
|
|
||||||
|
Try
|
||||||
|
myCommand.Connection.Open()
|
||||||
|
Catch e As MySqlException
|
||||||
|
MessageBox.Show( e.Message )
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void ShowException()
|
||||||
|
{
|
||||||
|
string mySelectQuery = "SELECT column1 FROM table1";
|
||||||
|
MySqlConnection myConnection =
|
||||||
|
new MySqlConnection("Data Source=localhost;Database=Sample;");
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery,myConnection);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myCommand.Connection.Open();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
MessageBox.Show( e.Message );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
|
||||||
|
</MyMembers>
|
||||||
|
</MyDocs>
|
53
Teknik/docs/MySqlHelper.xml
Normal file
53
Teknik/docs/MySqlHelper.xml
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<MyDocs>
|
||||||
|
<MyMembers name="Class">
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
This class is created whenever the MySql Data Provider encounters an error generated from the server.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Any open connections are not automatically closed when an exception is thrown. If
|
||||||
|
the client application determines that the exception is fatal, it should close any open
|
||||||
|
<see cref="MySqlDataReader"/> objects or <see cref="MySqlConnection"/> objects.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example generates a <B>MySqlException</B> due to a missing server,
|
||||||
|
and then displays the exception.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub ShowException()
|
||||||
|
Dim mySelectQuery As String = "SELECT column1 FROM table1"
|
||||||
|
Dim myConnection As New MySqlConnection ("Data Source=localhost;Database=Sample;")
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
|
||||||
|
|
||||||
|
Try
|
||||||
|
myCommand.Connection.Open()
|
||||||
|
Catch e As MySqlException
|
||||||
|
MessageBox.Show( e.Message )
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void ShowException()
|
||||||
|
{
|
||||||
|
string mySelectQuery = "SELECT column1 FROM table1";
|
||||||
|
MySqlConnection myConnection =
|
||||||
|
new MySqlConnection("Data Source=localhost;Database=Sample;");
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery,myConnection);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myCommand.Connection.Open();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
MessageBox.Show( e.Message );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
|
||||||
|
</MyMembers>
|
||||||
|
</MyDocs>
|
45
Teknik/docs/MySqlParameter.xml
Normal file
45
Teknik/docs/MySqlParameter.xml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<MyDocs>
|
||||||
|
<MyMembers name="Class">
|
||||||
|
<remarks>
|
||||||
|
Parameter names are not case sensitive.
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example creates multiple instances of <B>MySqlParameter</B> through the
|
||||||
|
<see cref="MySqlParameterCollection"/> collection within the <see cref="MySqlDataAdapter"/>.
|
||||||
|
These parameters are used to select data from the data source and place the data
|
||||||
|
in the <see cref="DataSet"/>. This example assumes that a <B>DataSet</B> and a
|
||||||
|
<B>MySqlDataAdapter</B> have already been created with the appropriate schema, commands,
|
||||||
|
and connection.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub AddSqlParameters()
|
||||||
|
' ...
|
||||||
|
' create myDataSet and myDataAdapter
|
||||||
|
' ...
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", MySqlDbType.VarChar, 80).Value = "toasters"
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", MySqlDbType.Long).Value = 239
|
||||||
|
|
||||||
|
myDataAdapter.Fill(myDataSet)
|
||||||
|
End Sub 'AddSqlParameters
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void AddSqlParameters()
|
||||||
|
{
|
||||||
|
// ...
|
||||||
|
// create myDataSet and myDataAdapter
|
||||||
|
// ...
|
||||||
|
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", MySqlDbType.VarChar, 80).Value = "toasters";
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", MySqlDbType.Long).Value = 239;
|
||||||
|
myDataAdapter.Fill(myDataSet);
|
||||||
|
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
|
||||||
|
</MyMembers>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</MyDocs>
|
45
Teknik/docs/MySqlParameterCollection.xml
Normal file
45
Teknik/docs/MySqlParameterCollection.xml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<MyDocs>
|
||||||
|
<MyMembers name="Class">
|
||||||
|
<remarks>
|
||||||
|
The number of the parameters in the collection must be equal to the number of
|
||||||
|
parameter placeholders within the command text, or an exception will be generated.
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example creates multiple instances of <see cref="MySqlParameter"/>
|
||||||
|
through the <B>MySqlParameterCollection</B> collection within the <see cref="MySqlDataAdapter"/>.
|
||||||
|
These parameters are used to select data within the data source and place the data in
|
||||||
|
the <see cref="System.Data.DataSet"/>. This code assumes that a <B>DataSet</B> and a <B>MySqlDataAdapter</B>
|
||||||
|
have already been created with the appropriate schema, commands, and connection.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub AddParameters()
|
||||||
|
' ...
|
||||||
|
' create myDataSet and myDataAdapter
|
||||||
|
' ...
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", MySqlDbType.VarChar, 80).Value = "toasters"
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", MySqlDbType.Long).Value = 239
|
||||||
|
|
||||||
|
myDataAdapter.Fill(myDataSet)
|
||||||
|
End Sub 'AddSqlParameters
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void AddSqlParameters()
|
||||||
|
{
|
||||||
|
// ...
|
||||||
|
// create myDataSet and myDataAdapter
|
||||||
|
// ...
|
||||||
|
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", MySqlDbType.VarChar, 80).Value = "toasters";
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", MySqlDbType.Long).Value = 239;
|
||||||
|
myDataAdapter.Fill(myDataSet);
|
||||||
|
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
|
||||||
|
</MyMembers>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</MyDocs>
|
329
Teknik/docs/MySqlTransaction.xml
Normal file
329
Teknik/docs/MySqlTransaction.xml
Normal file
@ -0,0 +1,329 @@
|
|||||||
|
<docs>
|
||||||
|
<Class>
|
||||||
|
<summary>
|
||||||
|
Represents a SQL transaction to be made in a MySQL database. This class cannot be inherited.
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
<remarks>
|
||||||
|
The application creates a <B>MySqlTransaction</B> object by calling <see cref="MySqlConnection.BeginTransaction()"/>
|
||||||
|
on the <see cref="MySqlConnection"/> object. All subsequent operations associated with the
|
||||||
|
transaction (for example, committing or aborting the transaction), are performed on the
|
||||||
|
<B>MySqlTransaction</B> object.
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlConnection"/> and a <B>MySqlTransaction</B>.
|
||||||
|
It also demonstrates how to use the <see cref="MySqlConnection.BeginTransaction()"/>,
|
||||||
|
<see cref="MySqlTransaction.Commit"/>, and <see cref="MySqlTransaction.Rollback"/> methods.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub RunTransaction(myConnString As String)
|
||||||
|
Dim myConnection As New MySqlConnection(myConnString)
|
||||||
|
myConnection.Open()
|
||||||
|
|
||||||
|
Dim myCommand As MySqlCommand = myConnection.CreateCommand()
|
||||||
|
Dim myTrans As MySqlTransaction
|
||||||
|
|
||||||
|
' Start a local transaction
|
||||||
|
myTrans = myConnection.BeginTransaction()
|
||||||
|
' Must assign both transaction object and connection
|
||||||
|
' to Command object for a pending local transaction
|
||||||
|
myCommand.Connection = myConnection
|
||||||
|
myCommand.Transaction = myTrans
|
||||||
|
|
||||||
|
Try
|
||||||
|
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myTrans.Commit()
|
||||||
|
Console.WriteLine("Both records are written to database.")
|
||||||
|
Catch e As Exception
|
||||||
|
Try
|
||||||
|
myTrans.Rollback()
|
||||||
|
Catch ex As MySqlException
|
||||||
|
If Not myTrans.Connection Is Nothing Then
|
||||||
|
Console.WriteLine("An exception of type " & ex.GetType().ToString() & _
|
||||||
|
" was encountered while attempting to roll back the transaction.")
|
||||||
|
End If
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Console.WriteLine("An exception of type " & e.GetType().ToString() & _
|
||||||
|
"was encountered while inserting the data.")
|
||||||
|
Console.WriteLine("Neither record was written to database.")
|
||||||
|
Finally
|
||||||
|
myConnection.Close()
|
||||||
|
End Try
|
||||||
|
End Sub 'RunTransaction
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void RunTransaction(string myConnString)
|
||||||
|
{
|
||||||
|
MySqlConnection myConnection = new MySqlConnection(myConnString);
|
||||||
|
myConnection.Open();
|
||||||
|
|
||||||
|
MySqlCommand myCommand = myConnection.CreateCommand();
|
||||||
|
MySqlTransaction myTrans;
|
||||||
|
|
||||||
|
// Start a local transaction
|
||||||
|
myTrans = myConnection.BeginTransaction();
|
||||||
|
// Must assign both transaction object and connection
|
||||||
|
// to Command object for a pending local transaction
|
||||||
|
myCommand.Connection = myConnection;
|
||||||
|
myCommand.Transaction = myTrans;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myTrans.Commit();
|
||||||
|
Console.WriteLine("Both records are written to database.");
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myTrans.Rollback();
|
||||||
|
}
|
||||||
|
catch (MySqlException ex)
|
||||||
|
{
|
||||||
|
if (myTrans.Connection != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("An exception of type " + ex.GetType() +
|
||||||
|
" was encountered while attempting to roll back the transaction.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine("An exception of type " + e.GetType() +
|
||||||
|
" was encountered while inserting the data.");
|
||||||
|
Console.WriteLine("Neither record was written to database.");
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
|
||||||
|
</Class>
|
||||||
|
|
||||||
|
<Rollback>
|
||||||
|
<summary>
|
||||||
|
Rolls back a transaction from a pending state.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
The Rollback method is equivalent to the MySQL statement ROLLBACK.
|
||||||
|
The transaction can only be rolled back from a pending state
|
||||||
|
(after BeginTransaction has been called, but before Commit is
|
||||||
|
called).
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlConnection"/> and a
|
||||||
|
<see cref="MySqlTransaction"/>. It also demonstrates how to use the
|
||||||
|
<see cref="MySqlConnection.BeginTransaction()"/>, <see cref="Commit"/>, and <B>Rollback</B>
|
||||||
|
methods.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub RunSqlTransaction(myConnString As String)
|
||||||
|
Dim myConnection As New MySqlConnection(myConnString)
|
||||||
|
myConnection.Open()
|
||||||
|
|
||||||
|
Dim myCommand As MySqlCommand = myConnection.CreateCommand()
|
||||||
|
Dim myTrans As MySqlTransaction
|
||||||
|
|
||||||
|
' Start a local transaction
|
||||||
|
myTrans = myConnection.BeginTransaction()
|
||||||
|
|
||||||
|
' Must assign both transaction object and connection
|
||||||
|
' to Command object for a pending local transaction
|
||||||
|
myCommand.Connection = myConnection
|
||||||
|
myCommand.Transaction = myTrans
|
||||||
|
|
||||||
|
Try
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (100, 'Description')"
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (101, 'Description')"
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myTrans.Commit()
|
||||||
|
Console.WriteLine("Success.")
|
||||||
|
Catch e As Exception
|
||||||
|
Try
|
||||||
|
myTrans.Rollback()
|
||||||
|
Catch ex As MySqlException
|
||||||
|
If Not myTrans.Connection Is Nothing Then
|
||||||
|
Console.WriteLine("An exception of type " & ex.GetType().ToString() & _
|
||||||
|
" was encountered while attempting to roll back the transaction.")
|
||||||
|
End If
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Console.WriteLine("An exception of type " & e.GetType().ToString() & _
|
||||||
|
"was encountered while inserting the data.")
|
||||||
|
Console.WriteLine("Neither record was written to database.")
|
||||||
|
Finally
|
||||||
|
myConnection.Close()
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void RunSqlTransaction(string myConnString)
|
||||||
|
{
|
||||||
|
MySqlConnection myConnection = new MySqlConnection(myConnString);
|
||||||
|
myConnection.Open();
|
||||||
|
|
||||||
|
MySqlCommand myCommand = myConnection.CreateCommand();
|
||||||
|
MySqlTransaction myTrans;
|
||||||
|
|
||||||
|
// Start a local transaction
|
||||||
|
myTrans = myConnection.BeginTransaction();
|
||||||
|
// Must assign both transaction object and connection
|
||||||
|
// to Command object for a pending local transaction
|
||||||
|
myCommand.Connection = myConnection;
|
||||||
|
myCommand.Transaction = myTrans;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (100, 'Description')";
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (101, 'Description')";
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myTrans.Commit();
|
||||||
|
Console.WriteLine("Both records are written to database.");
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myTrans.Rollback();
|
||||||
|
}
|
||||||
|
catch (MySqlException ex)
|
||||||
|
{
|
||||||
|
if (myTrans.Connection != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("An exception of type " + ex.GetType() +
|
||||||
|
" was encountered while attempting to roll back the transaction.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine("An exception of type " + e.GetType() +
|
||||||
|
" was encountered while inserting the data.");
|
||||||
|
Console.WriteLine("Neither record was written to database.");
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Rollback>
|
||||||
|
|
||||||
|
<Commit>
|
||||||
|
<summary>
|
||||||
|
Commits the database transaction.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
The <b>Commit</b> method is equivalent to the MySQL SQL statement
|
||||||
|
COMMIT.
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlConnection"/> and a
|
||||||
|
<see cref="MySqlTransaction"/>. It also demonstrates how to use the
|
||||||
|
<see cref="MySqlConnection.BeginTransaction()"/>, <see cref="Commit"/>, and <B>Rollback</B>
|
||||||
|
methods.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub RunSqlTransaction(myConnString As String)
|
||||||
|
Dim myConnection As New MySqlConnection(myConnString)
|
||||||
|
myConnection.Open()
|
||||||
|
|
||||||
|
Dim myCommand As MySqlCommand = myConnection.CreateCommand()
|
||||||
|
Dim myTrans As MySqlTransaction
|
||||||
|
|
||||||
|
' Start a local transaction
|
||||||
|
myTrans = myConnection.BeginTransaction()
|
||||||
|
|
||||||
|
' Must assign both transaction object and connection
|
||||||
|
' to Command object for a pending local transaction
|
||||||
|
myCommand.Connection = myConnection
|
||||||
|
myCommand.Transaction = myTrans
|
||||||
|
|
||||||
|
Try
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (100, 'Description')"
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (101, 'Description')"
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myTrans.Commit()
|
||||||
|
Console.WriteLine("Success.")
|
||||||
|
Catch e As Exception
|
||||||
|
Try
|
||||||
|
myTrans.Rollback()
|
||||||
|
Catch ex As MySqlException
|
||||||
|
If Not myTrans.Connection Is Nothing Then
|
||||||
|
Console.WriteLine("An exception of type " & ex.GetType().ToString() & _
|
||||||
|
" was encountered while attempting to roll back the transaction.")
|
||||||
|
End If
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Console.WriteLine("An exception of type " & e.GetType().ToString() & _
|
||||||
|
"was encountered while inserting the data.")
|
||||||
|
Console.WriteLine("Neither record was written to database.")
|
||||||
|
Finally
|
||||||
|
myConnection.Close()
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void RunSqlTransaction(string myConnString)
|
||||||
|
{
|
||||||
|
MySqlConnection myConnection = new MySqlConnection(myConnString);
|
||||||
|
myConnection.Open();
|
||||||
|
|
||||||
|
MySqlCommand myCommand = myConnection.CreateCommand();
|
||||||
|
MySqlTransaction myTrans;
|
||||||
|
|
||||||
|
// Start a local transaction
|
||||||
|
myTrans = myConnection.BeginTransaction();
|
||||||
|
// Must assign both transaction object and connection
|
||||||
|
// to Command object for a pending local transaction
|
||||||
|
myCommand.Connection = myConnection;
|
||||||
|
myCommand.Transaction = myTrans;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (100, 'Description')";
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (101, 'Description')";
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myTrans.Commit();
|
||||||
|
Console.WriteLine("Both records are written to database.");
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myTrans.Rollback();
|
||||||
|
}
|
||||||
|
catch (MySqlException ex)
|
||||||
|
{
|
||||||
|
if (myTrans.Connection != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("An exception of type " + ex.GetType() +
|
||||||
|
" was encountered while attempting to roll back the transaction.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine("An exception of type " + e.GetType() +
|
||||||
|
" was encountered while inserting the data.");
|
||||||
|
Console.WriteLine("Neither record was written to database.");
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Commit>
|
||||||
|
|
||||||
|
</docs>
|
@ -4,12 +4,12 @@
|
|||||||
<package id="bootstrap" version="3.3.7" targetFramework="net452" userInstalled="true" />
|
<package id="bootstrap" version="3.3.7" targetFramework="net452" userInstalled="true" />
|
||||||
<package id="Bootstrap.Flat" version="3.3.4" targetFramework="net452" />
|
<package id="Bootstrap.Flat" version="3.3.4" targetFramework="net452" />
|
||||||
<package id="Bootstrap.Switch" version="3.3.2.1" targetFramework="net452" />
|
<package id="Bootstrap.Switch" version="3.3.2.1" targetFramework="net452" />
|
||||||
<package id="EntityFramework" version="6.1.3" targetFramework="net452" userInstalled="true" />
|
<package id="EntityFramework" version="6.2.0" targetFramework="net462" userInstalled="true" />
|
||||||
<package id="FontAwesome" version="4.7.0" targetFramework="net462" userInstalled="true" />
|
<package id="FontAwesome" version="4.7.0" targetFramework="net462" userInstalled="true" />
|
||||||
<package id="GitVersionTask" version="3.6.5" targetFramework="net462" developmentDependency="true" />
|
<package id="GitVersionTask" version="3.6.5" targetFramework="net462" developmentDependency="true" />
|
||||||
<package id="IRCSharp" version="1.0.0.1" targetFramework="net462" />
|
<package id="IRCSharp" version="1.0.0.1" targetFramework="net462" />
|
||||||
<package id="jQuery" version="3.1.1" targetFramework="net452" userInstalled="true" />
|
<package id="jQuery" version="3.3.1" targetFramework="net462" userInstalled="true" />
|
||||||
<package id="jQuery.Validation" version="1.16.0" targetFramework="net462" userInstalled="true" />
|
<package id="jQuery.Validation" version="1.17.0" targetFramework="net462" userInstalled="true" />
|
||||||
<package id="MarkdownDeep.Full" version="1.5" targetFramework="net452" />
|
<package id="MarkdownDeep.Full" version="1.5" targetFramework="net452" />
|
||||||
<package id="MarkdownDeep.NET" version="1.5" targetFramework="net452" />
|
<package id="MarkdownDeep.NET" version="1.5" targetFramework="net452" />
|
||||||
<package id="MarkdownHelper" version="1.3" targetFramework="net452" />
|
<package id="MarkdownHelper" version="1.3" targetFramework="net452" />
|
||||||
@ -17,28 +17,28 @@
|
|||||||
<package id="Microsoft.AspNet.Identity.EntityFramework" version="2.2.1" targetFramework="net452" userInstalled="true" />
|
<package id="Microsoft.AspNet.Identity.EntityFramework" version="2.2.1" targetFramework="net452" userInstalled="true" />
|
||||||
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net46" userInstalled="true" />
|
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net46" userInstalled="true" />
|
||||||
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net46" userInstalled="true" />
|
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net46" userInstalled="true" />
|
||||||
<package id="Microsoft.AspNet.SignalR" version="2.2.1" targetFramework="net462" />
|
<package id="Microsoft.AspNet.SignalR" version="2.2.2" targetFramework="net462" />
|
||||||
<package id="Microsoft.AspNet.SignalR.Core" version="2.2.1" targetFramework="net462" />
|
<package id="Microsoft.AspNet.SignalR.Core" version="2.2.2" targetFramework="net462" />
|
||||||
<package id="Microsoft.AspNet.SignalR.JS" version="2.2.1" targetFramework="net462" />
|
<package id="Microsoft.AspNet.SignalR.JS" version="2.2.2" targetFramework="net462" />
|
||||||
<package id="Microsoft.AspNet.SignalR.SystemWeb" version="2.2.1" targetFramework="net462" />
|
<package id="Microsoft.AspNet.SignalR.SystemWeb" version="2.2.2" targetFramework="net462" />
|
||||||
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net46" userInstalled="true" />
|
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net46" userInstalled="true" />
|
||||||
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net46" userInstalled="true" />
|
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net46" userInstalled="true" />
|
||||||
<package id="Microsoft.Azure.KeyVault.Core" version="2.0.4" targetFramework="net462" />
|
<package id="Microsoft.Azure.KeyVault.Core" version="2.0.4" targetFramework="net462" />
|
||||||
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net462" />
|
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.8" targetFramework="net462" />
|
||||||
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net46" userInstalled="true" />
|
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net46" userInstalled="true" />
|
||||||
<package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net462" developmentDependency="true" />
|
<package id="Microsoft.Net.Compilers" version="2.6.1" targetFramework="net462" developmentDependency="true" />
|
||||||
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net462" />
|
<package id="Microsoft.Owin" version="3.1.0" targetFramework="net462" />
|
||||||
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net462" />
|
<package id="Microsoft.Owin.Host.SystemWeb" version="3.1.0" targetFramework="net462" />
|
||||||
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net462" />
|
<package id="Microsoft.Owin.Security" version="3.1.0" targetFramework="net462" />
|
||||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" userInstalled="true" />
|
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" userInstalled="true" />
|
||||||
<package id="Mime-Detective" version="0.0.5" targetFramework="net462" />
|
<package id="Mime-Detective" version="0.0.5" targetFramework="net462" />
|
||||||
<package id="Modernizr" version="2.8.3" targetFramework="net452" userInstalled="true" />
|
<package id="Modernizr" version="2.8.3" targetFramework="net452" userInstalled="true" />
|
||||||
<package id="MySql.Data" version="6.9.9" targetFramework="net452" />
|
<package id="MySql.Data" version="6.10.6" targetFramework="net462" />
|
||||||
<package id="NBitcoin" version="3.0.2.10" targetFramework="net462" />
|
<package id="NBitcoin" version="3.0.2.10" targetFramework="net462" />
|
||||||
<package id="nClam" version="2.0.6.0" targetFramework="net462" />
|
<package id="nClam" version="2.0.6.0" targetFramework="net462" />
|
||||||
<package id="Newtonsoft.Json" version="10.0.1" targetFramework="net462" userInstalled="true" />
|
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net462" userInstalled="true" />
|
||||||
<package id="Owin" version="1.0" targetFramework="net462" />
|
<package id="Owin" version="1.0" targetFramework="net462" />
|
||||||
<package id="Piwik.Tracker" version="2.16.0.0" targetFramework="net452" />
|
<package id="Piwik.Tracker" version="3.0.0" targetFramework="net462" />
|
||||||
<package id="QRCoder" version="1.2.3" targetFramework="net462" />
|
<package id="QRCoder" version="1.2.3" targetFramework="net462" />
|
||||||
<package id="Respond" version="1.4.2" targetFramework="net452" userInstalled="true" />
|
<package id="Respond" version="1.4.2" targetFramework="net452" userInstalled="true" />
|
||||||
<package id="System.Xml.XmlSerializer" version="4.3.0" targetFramework="net462" />
|
<package id="System.Xml.XmlSerializer" version="4.3.0" targetFramework="net462" />
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<configSections>
|
<configSections>
|
||||||
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
|
|
||||||
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||||
</configSections>
|
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
|
||||||
<startup>
|
<startup>
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
|
||||||
</startup>
|
</startup>
|
||||||
@ -21,7 +21,7 @@
|
|||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||||
@ -29,7 +29,7 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
|
@ -34,12 +34,10 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
|
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Media, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Media, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\net7mma.0.111192.1\lib\net452\Media.dll</HintPath>
|
<HintPath>..\packages\net7mma.0.111192.1\lib\net452\Media.dll</HintPath>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="EntityFramework" version="6.1.3" targetFramework="net462" />
|
<package id="EntityFramework" version="6.2.0" targetFramework="net462" />
|
||||||
<package id="net7mma" version="0.111192.1" targetFramework="net462" />
|
<package id="net7mma" version="0.111192.1" targetFramework="net462" />
|
||||||
</packages>
|
</packages>
|
@ -1,7 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\packages\xunit.runner.visualstudio.2.2.0\build\net20\xunit.runner.visualstudio.props" Condition="Exists('..\packages\xunit.runner.visualstudio.2.2.0\build\net20\xunit.runner.visualstudio.props')" />
|
<Import Project="..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props" Condition="Exists('..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props')" />
|
||||||
<Import Project="..\packages\xunit.runner.msbuild.2.2.0\build\net452\xunit.runner.msbuild.props" Condition="Exists('..\packages\xunit.runner.msbuild.2.2.0\build\net452\xunit.runner.msbuild.props')" />
|
<Import Project="..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.props" Condition="Exists('..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.props')" />
|
||||||
|
<Import Project="..\packages\xunit.runner.console.2.3.1\build\xunit.runner.console.props" Condition="Exists('..\packages\xunit.runner.console.2.3.1\build\xunit.runner.console.props')" />
|
||||||
|
<Import Project="..\packages\xunit.core.2.3.1\build\xunit.core.props" Condition="Exists('..\packages\xunit.core.2.3.1\build\xunit.core.props')" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
@ -46,17 +48,14 @@
|
|||||||
<HintPath>..\packages\xunit.abstractions.2.0.1\lib\net35\xunit.abstractions.dll</HintPath>
|
<HintPath>..\packages\xunit.abstractions.2.0.1\lib\net35\xunit.abstractions.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="xunit.assert, Version=2.2.0.3545, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
|
<Reference Include="xunit.assert, Version=2.3.1.3858, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\xunit.assert.2.2.0\lib\netstandard1.1\xunit.assert.dll</HintPath>
|
<HintPath>..\packages\xunit.assert.2.3.1\lib\netstandard1.1\xunit.assert.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="xunit.core, Version=2.2.0.3545, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
|
<Reference Include="xunit.core, Version=2.3.1.3858, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\xunit.extensibility.core.2.2.0\lib\netstandard1.1\xunit.core.dll</HintPath>
|
<HintPath>..\packages\xunit.extensibility.core.2.3.1\lib\netstandard1.1\xunit.core.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="xunit.execution.desktop, Version=2.2.0.3545, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
|
<Reference Include="xunit.execution.desktop, Version=2.3.1.3858, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\xunit.extensibility.execution.2.2.0\lib\net452\xunit.execution.desktop.dll</HintPath>
|
<HintPath>..\packages\xunit.extensibility.execution.2.3.1\lib\net452\xunit.execution.desktop.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -65,14 +64,23 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Analyzer Include="..\packages\xunit.analyzers.0.8.0\analyzers\dotnet\cs\xunit.analyzers.dll" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\packages\xunit.runner.msbuild.2.2.0\build\net452\xunit.runner.msbuild.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.msbuild.2.2.0\build\net452\xunit.runner.msbuild.props'))" />
|
<Error Condition="!Exists('..\packages\xunit.core.2.3.1\build\xunit.core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.core.2.3.1\build\xunit.core.props'))" />
|
||||||
<Error Condition="!Exists('..\packages\xunit.runner.visualstudio.2.2.0\build\net20\xunit.runner.visualstudio.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.visualstudio.2.2.0\build\net20\xunit.runner.visualstudio.props'))" />
|
<Error Condition="!Exists('..\packages\xunit.core.2.3.1\build\xunit.core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.core.2.3.1\build\xunit.core.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\xunit.runner.console.2.3.1\build\xunit.runner.console.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.console.2.3.1\build\xunit.runner.console.props'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.props'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props'))" />
|
||||||
</Target>
|
</Target>
|
||||||
|
<Import Project="..\packages\xunit.core.2.3.1\build\xunit.core.targets" Condition="Exists('..\packages\xunit.core.2.3.1\build\xunit.core.targets')" />
|
||||||
|
<Import Project="..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.targets" Condition="Exists('..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.targets')" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
<Target Name="BeforeBuild">
|
<Target Name="BeforeBuild">
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="xunit" version="2.2.0" targetFramework="net462" />
|
<package id="xunit" version="2.3.1" targetFramework="net462" />
|
||||||
<package id="xunit.abstractions" version="2.0.1" targetFramework="net462" />
|
<package id="xunit.abstractions" version="2.0.1" targetFramework="net462" />
|
||||||
<package id="xunit.assert" version="2.2.0" targetFramework="net462" />
|
<package id="xunit.analyzers" version="0.8.0" targetFramework="net462" />
|
||||||
<package id="xunit.core" version="2.2.0" targetFramework="net462" />
|
<package id="xunit.assert" version="2.3.1" targetFramework="net462" />
|
||||||
<package id="xunit.extensibility.core" version="2.2.0" targetFramework="net462" />
|
<package id="xunit.core" version="2.3.1" targetFramework="net462" />
|
||||||
<package id="xunit.extensibility.execution" version="2.2.0" targetFramework="net462" />
|
<package id="xunit.extensibility.core" version="2.3.1" targetFramework="net462" />
|
||||||
<package id="xunit.runner.console" version="2.2.0" targetFramework="net462" developmentDependency="true" />
|
<package id="xunit.extensibility.execution" version="2.3.1" targetFramework="net462" />
|
||||||
<package id="xunit.runner.msbuild" version="2.2.0" targetFramework="net462" developmentDependency="true" />
|
<package id="xunit.runner.console" version="2.3.1" targetFramework="net462" developmentDependency="true" />
|
||||||
<package id="xunit.runner.visualstudio" version="2.2.0" targetFramework="net462" developmentDependency="true" />
|
<package id="xunit.runner.msbuild" version="2.3.1" targetFramework="net462" developmentDependency="true" />
|
||||||
|
<package id="xunit.runner.visualstudio" version="2.3.1" targetFramework="net462" developmentDependency="true" />
|
||||||
</packages>
|
</packages>
|
@ -33,8 +33,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Newtonsoft.Json.10.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="GitVersionTask" version="3.6.5" targetFramework="net462" developmentDependency="true" />
|
<package id="GitVersionTask" version="3.6.5" targetFramework="net462" developmentDependency="true" />
|
||||||
<package id="Newtonsoft.Json" version="10.0.1" targetFramework="net462" />
|
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net462" />
|
||||||
</packages>
|
</packages>
|
@ -40,9 +40,8 @@
|
|||||||
<HintPath>..\..\packages\Piwik.Analytics.0.3.0\lib\net40\Piwik.Analytics.dll</HintPath>
|
<HintPath>..\..\packages\Piwik.Analytics.0.3.0\lib\net40\Piwik.Analytics.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Piwik.Tracker, Version=2.16.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Piwik.Tracker, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Piwik.Tracker.2.16.0.0\lib\net40\Piwik.Tracker.dll</HintPath>
|
<HintPath>..\..\packages\Piwik.Tracker.3.0.0\lib\net40\Piwik.Tracker.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
@ -27,32 +27,32 @@ namespace Teknik.Piwik
|
|||||||
sub = "dev - " + sub;
|
sub = "dev - " + sub;
|
||||||
}
|
}
|
||||||
|
|
||||||
PiwikTracker.URL = config.PiwikConfig.Url;
|
//PiwikTracker.URL = config.PiwikConfig.Url;
|
||||||
PiwikTracker tracker = new PiwikTracker(config.PiwikConfig.SiteId);
|
PiwikTracker tracker = new PiwikTracker(config.PiwikConfig.SiteId, config.PiwikConfig.Url);
|
||||||
|
|
||||||
// Get Request Info
|
// Get Request Info
|
||||||
string ipAddress = request.ClientIPFromRequest(true);
|
string ipAddress = request.ClientIPFromRequest(true);
|
||||||
tracker.setIp(ipAddress);
|
tracker.SetIp(ipAddress);
|
||||||
tracker.setTokenAuth(config.PiwikConfig.TokenAuth);
|
tracker.SetTokenAuth(config.PiwikConfig.TokenAuth);
|
||||||
tracker.setUrl(request.Url.ToString());
|
tracker.SetUrl(request.Url.ToString());
|
||||||
|
|
||||||
tracker.setUserAgent(request.UserAgent);
|
tracker.SetUserAgent(request.UserAgent);
|
||||||
|
|
||||||
// Get browser info
|
// Get browser info
|
||||||
tracker.setResolution(request.Browser.ScreenPixelsWidth, request.Browser.ScreenPixelsHeight);
|
tracker.SetResolution(request.Browser.ScreenPixelsWidth, request.Browser.ScreenPixelsHeight);
|
||||||
tracker.setBrowserHasCookies(request.Browser.Cookies);
|
tracker.SetBrowserHasCookies(request.Browser.Cookies);
|
||||||
if (!string.IsNullOrEmpty(request.Headers["Accept-Language"]))
|
if (!string.IsNullOrEmpty(request.Headers["Accept-Language"]))
|
||||||
tracker.setBrowserLanguage(request.Headers["Accept-Language"]);
|
tracker.SetBrowserLanguage(request.Headers["Accept-Language"]);
|
||||||
BrowserPlugins plugins = new BrowserPlugins();
|
BrowserPlugins plugins = new BrowserPlugins();
|
||||||
plugins.java = request.Browser.JavaApplets;
|
plugins.Java = request.Browser.JavaApplets;
|
||||||
tracker.setPlugins(plugins);
|
tracker.SetPlugins(plugins);
|
||||||
|
|
||||||
// Get Referral
|
// Get Referral
|
||||||
if (request.UrlReferrer != null)
|
if (request.UrlReferrer != null)
|
||||||
tracker.setUrlReferrer(request.UrlReferrer.ToString());
|
tracker.SetUrlReferrer(request.UrlReferrer.ToString());
|
||||||
|
|
||||||
// Send the tracking request
|
// Send the tracking request
|
||||||
tracker.doTrackPageView(string.Format("{0}/{1}", sub, title));
|
tracker.DoTrackPageView(string.Format("{0}/{1}", sub, title));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -63,15 +63,15 @@ namespace Teknik.Piwik
|
|||||||
|
|
||||||
public static void TrackDownload(HttpRequestBase request, Config config, string url)
|
public static void TrackDownload(HttpRequestBase request, Config config, string url)
|
||||||
{
|
{
|
||||||
TrackAction(request, config, url, PiwikTracker.ActionType.download);
|
TrackAction(request, config, url, ActionType.Download);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void TrackLink(HttpRequestBase request, Config config, string url)
|
public static void TrackLink(HttpRequestBase request, Config config, string url)
|
||||||
{
|
{
|
||||||
TrackAction(request, config, url, PiwikTracker.ActionType.link);
|
TrackAction(request, config, url, ActionType.Link);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void TrackAction(HttpRequestBase request, Config config, string url, PiwikTracker.ActionType type)
|
private static void TrackAction(HttpRequestBase request, Config config, string url, ActionType type)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -79,21 +79,20 @@ namespace Teknik.Piwik
|
|||||||
string doNotTrack = request.Headers["DNT"];
|
string doNotTrack = request.Headers["DNT"];
|
||||||
if (string.IsNullOrEmpty(doNotTrack) || doNotTrack != "1")
|
if (string.IsNullOrEmpty(doNotTrack) || doNotTrack != "1")
|
||||||
{
|
{
|
||||||
PiwikTracker.URL = config.PiwikConfig.Url;
|
PiwikTracker tracker = new PiwikTracker(config.PiwikConfig.SiteId, config.PiwikConfig.Url);
|
||||||
PiwikTracker tracker = new PiwikTracker(config.PiwikConfig.SiteId);
|
|
||||||
|
|
||||||
tracker.setUserAgent(request.UserAgent);
|
tracker.SetUserAgent(request.UserAgent);
|
||||||
|
|
||||||
string ipAddress = request.ClientIPFromRequest(true);
|
string ipAddress = request.ClientIPFromRequest(true);
|
||||||
|
|
||||||
tracker.setIp(ipAddress);
|
tracker.SetIp(ipAddress);
|
||||||
tracker.setTokenAuth(config.PiwikConfig.TokenAuth);
|
tracker.SetTokenAuth(config.PiwikConfig.TokenAuth);
|
||||||
|
|
||||||
// Get Referral
|
// Get Referral
|
||||||
if (request.UrlReferrer != null)
|
if (request.UrlReferrer != null)
|
||||||
tracker.setUrlReferrer(request.UrlReferrer.ToString());
|
tracker.SetUrlReferrer(request.UrlReferrer.ToString());
|
||||||
|
|
||||||
tracker.doTrackAction(url, type);
|
tracker.DoTrackAction(url, type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -6,5 +6,5 @@
|
|||||||
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net462" />
|
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net462" />
|
||||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net462" />
|
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net462" />
|
||||||
<package id="Piwik.Analytics" version="0.3.0" targetFramework="net462" />
|
<package id="Piwik.Analytics" version="0.3.0" targetFramework="net462" />
|
||||||
<package id="Piwik.Tracker" version="2.16.0.0" targetFramework="net462" />
|
<package id="Piwik.Tracker" version="3.0.0" targetFramework="net462" />
|
||||||
</packages>
|
</packages>
|
@ -51,18 +51,24 @@
|
|||||||
<Reference Include="Mime-Detective, Version=0.0.5.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Mime-Detective, Version=0.0.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Mime-Detective.0.0.5\lib\net45\Mime-Detective.dll</HintPath>
|
<HintPath>..\..\packages\Mime-Detective.0.0.5\lib\net45\Mime-Detective.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
<Reference Include="MySql.Data, Version=6.10.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\MySql.Data.6.9.9\lib\net45\MySql.Data.dll</HintPath>
|
<HintPath>..\..\packages\MySql.Data.6.10.6\lib\net452\MySql.Data.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Newtonsoft.Json.10.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.ComponentModel" />
|
||||||
|
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||||
|
<Reference Include="System.Configuration" />
|
||||||
|
<Reference Include="System.Configuration.Install" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Drawing.Design" />
|
||||||
|
<Reference Include="System.Management" />
|
||||||
|
<Reference Include="System.Runtime" />
|
||||||
<Reference Include="System.ServiceModel" />
|
<Reference Include="System.ServiceModel" />
|
||||||
|
<Reference Include="System.Transactions" />
|
||||||
<Reference Include="System.Web" />
|
<Reference Include="System.Web" />
|
||||||
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll</HintPath>
|
<HintPath>..\..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll</HintPath>
|
||||||
@ -147,6 +153,19 @@
|
|||||||
<None Include="app.config" />
|
<None Include="app.config" />
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="docs\MySqlCommand.xml" />
|
||||||
|
<Content Include="docs\MySqlCommandBuilder.xml" />
|
||||||
|
<Content Include="docs\MySqlConnection.xml" />
|
||||||
|
<Content Include="docs\MySqlConnectionStringBuilder.xml" />
|
||||||
|
<Content Include="docs\MySqlDataAdapter.xml" />
|
||||||
|
<Content Include="docs\MySqlDataReader.xml" />
|
||||||
|
<Content Include="docs\MySqlException.xml" />
|
||||||
|
<Content Include="docs\MySqlHelper.xml" />
|
||||||
|
<Content Include="docs\MySqlParameter.xml" />
|
||||||
|
<Content Include="docs\MySqlParameterCollection.xml" />
|
||||||
|
<Content Include="docs\MySqlTransaction.xml" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<Import Project="..\..\packages\GitVersionTask.3.6.5\build\dotnet\GitVersionTask.targets" Condition="Exists('..\..\packages\GitVersionTask.3.6.5\build\dotnet\GitVersionTask.targets')" />
|
<Import Project="..\..\packages\GitVersionTask.3.6.5\build\dotnet\GitVersionTask.targets" Condition="Exists('..\..\packages\GitVersionTask.3.6.5\build\dotnet\GitVersionTask.targets')" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
@ -19,6 +19,6 @@
|
|||||||
<system.data>
|
<system.data>
|
||||||
<DbProviderFactories>
|
<DbProviderFactories>
|
||||||
<remove invariant="MySql.Data.MySqlClient" />
|
<remove invariant="MySql.Data.MySqlClient" />
|
||||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
<add description=".Net Framework Data Provider for MySQL" invariant="MySql.Data.MySqlClient" name="MySQL Data Provider" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.10.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
||||||
</DbProviderFactories>
|
</DbProviderFactories>
|
||||||
</system.data></configuration>
|
</system.data></configuration>
|
934
Utilities/Utilities/docs/MySqlCommand.xml
Normal file
934
Utilities/Utilities/docs/MySqlCommand.xml
Normal file
@ -0,0 +1,934 @@
|
|||||||
|
<docs>
|
||||||
|
<ClassSummary>
|
||||||
|
<summary>Represents a SQL statement to execute against a MySQL database. This class cannot be inherited.</summary>
|
||||||
|
<remarks>
|
||||||
|
<B>MySqlCommand</B> features the following methods for executing commands at a MySQL database:
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Item</term>
|
||||||
|
<term>Description</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<a href="MySql.Data.MySqlClient.MySqlCommand.ExecuteReader_overloads.html">ExecuteReader</a>
|
||||||
|
</term>
|
||||||
|
<description>Executes commands that return rows.</description>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<a href="MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery.html">ExecuteNonQuery</a>
|
||||||
|
</term>
|
||||||
|
<description>Executes commands such as SQL INSERT, DELETE, and UPDATE statements.</description>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<a href="MySql.Data.MySqlClient.MySqlCommand.ExecuteScalar.html">ExecuteScalar</a>
|
||||||
|
</term>
|
||||||
|
<description>Retrieves a single value (for example, an aggregate value) from a database.</description>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
|
||||||
|
You can reset the <B>CommandText</B> property and reuse the <B>MySqlCommand</B>
|
||||||
|
object. However, you must close the <A
|
||||||
|
href="MySql.Data.MySqlClient.MySqlDataReader.html">MySqlDataReader</A>
|
||||||
|
before you can execute a new or previous command.
|
||||||
|
|
||||||
|
If a <A href="MySql.Data.MySqlClient.MySqlException.html">MySqlException</A> is
|
||||||
|
generated by the method executing a <B>MySqlCommand</B>, the <A
|
||||||
|
href="MySql.Data.MySqlClient.MySqlConnection.html">MySqlConnection</A>
|
||||||
|
remains open. It is the responsibility of the programmer to close the connection.
|
||||||
|
|
||||||
|
<note>
|
||||||
|
Using the '@' symbol for paramters is now the preferred approach although the old pattern of using
|
||||||
|
'?' is still supported. Please be aware though that using '@' can cause conflicts when user variables
|
||||||
|
are also used. To help with this situation please see the documentation on the 'allow user variables'
|
||||||
|
connection string option. The 'old syntax' connection string option has now been deprecated.
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example creates a <A href="frlrfsystemdatasqlclientsqlcommandclasstopic.htm">MySqlCommand</A> and
|
||||||
|
a <B>MySqlConnection</B>. The <B>MySqlConnection</B> is opened and set as the <A
|
||||||
|
href="frlrfsystemdatasqlclientsqlcommandclassconnectiontopic.htm">Connection</A>
|
||||||
|
for the <B>MySqlCommand</B>. The example then calls <A
|
||||||
|
href="frlrfsystemdatasqlclientsqlcommandclassexecutenonquerytopic.htm">ExecuteNonQuery</A>,
|
||||||
|
and closes the connection. To accomplish this, the <B>ExecuteNonQuery</B> is
|
||||||
|
passed a connection string and a query string that is a SQL INSERT
|
||||||
|
statement.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub InsertRow(myConnectionString As String)
|
||||||
|
" If the connection string is null, use a default.
|
||||||
|
If myConnectionString = "" Then
|
||||||
|
myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass"
|
||||||
|
End If
|
||||||
|
Dim myConnection As New MySqlConnection(myConnectionString)
|
||||||
|
Dim myInsertQuery As String = "INSERT INTO Orders (id, customerId, amount) Values(1001, 23, 30.66)"
|
||||||
|
Dim myCommand As New MySqlCommand(myInsertQuery)
|
||||||
|
myCommand.Connection = myConnection
|
||||||
|
myConnection.Open()
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myCommand.Connection.Close()
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void InsertRow(string myConnectionString)
|
||||||
|
{
|
||||||
|
// If the connection string is null, use a default.
|
||||||
|
if(myConnectionString == "")
|
||||||
|
{
|
||||||
|
myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass";
|
||||||
|
}
|
||||||
|
MySqlConnection myConnection = new MySqlConnection(myConnectionString);
|
||||||
|
string myInsertQuery = "INSERT INTO Orders (id, customerId, amount) Values(1001, 23, 30.66)";
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(myInsertQuery);
|
||||||
|
myCommand.Connection = myConnection;
|
||||||
|
myConnection.Open();
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myCommand.Connection.Close();
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</ClassSummary>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ctor1>
|
||||||
|
<overloads>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the MySqlCommand class.
|
||||||
|
</summary>
|
||||||
|
<example>
|
||||||
|
The following example creates a MySqlCommand and sets some of its properties.
|
||||||
|
<para></para>
|
||||||
|
<note>
|
||||||
|
This example shows how to use one of the overloaded
|
||||||
|
versions of the MySqlCommand constructor. For other examples that might be available,
|
||||||
|
see the individual overload topics.
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim myConnection As New MySqlConnection _
|
||||||
|
("Persist Security Info=False;database=test;server=myServer")
|
||||||
|
myConnection.Open()
|
||||||
|
Dim myTrans As MySqlTransaction = myConnection.BeginTransaction()
|
||||||
|
Dim mySelectQuery As String = "SELECT * FROM MyTable"
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery, myConnection, myTrans)
|
||||||
|
myCommand.CommandTimeout = 20
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlConnection myConnection = new MySqlConnection("Persist Security Info=False;
|
||||||
|
database=test;server=myServer");
|
||||||
|
myConnection.Open();
|
||||||
|
MySqlTransaction myTrans = myConnection.BeginTransaction();
|
||||||
|
string mySelectQuery = "SELECT * FROM myTable";
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery, myConnection,myTrans);
|
||||||
|
myCommand.CommandTimeout = 20;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
<code lang="C++">
|
||||||
|
public:
|
||||||
|
void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlConnection* myConnection = new MySqlConnection(S"Persist Security Info=False;
|
||||||
|
database=test;server=myServer");
|
||||||
|
myConnection->Open();
|
||||||
|
MySqlTransaction* myTrans = myConnection->BeginTransaction();
|
||||||
|
String* mySelectQuery = S"SELECT * FROM myTable";
|
||||||
|
MySqlCommand* myCommand = new MySqlCommand(mySelectQuery, myConnection, myTrans);
|
||||||
|
myCommand->CommandTimeout = 20;
|
||||||
|
};
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</overloads>
|
||||||
|
|
||||||
|
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the MySqlCommand class.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
The base constructor initializes all fields to their default values. The
|
||||||
|
following table shows initial property values for an instance of <see cref="MySqlCommand"/>.
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandText"/>
|
||||||
|
</term>
|
||||||
|
<term>empty string ("")</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandTimeout"/>
|
||||||
|
</term>
|
||||||
|
<term>0</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandType"/>
|
||||||
|
</term>
|
||||||
|
<term>CommandType.Text</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="Connection"/>
|
||||||
|
</term>
|
||||||
|
<term>Null</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value for any of these properties through a separate call to
|
||||||
|
the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and
|
||||||
|
sets some of its properties.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim myCommand As New MySqlCommand()
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand();
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</ctor1>
|
||||||
|
|
||||||
|
<ctor2>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlCommand"/> class with the text of the query.
|
||||||
|
</summary>
|
||||||
|
<param name="cmdText">The text of the query.</param>
|
||||||
|
<remarks>
|
||||||
|
When an instance of <see cref="MySqlCommand"/> is created,
|
||||||
|
the following read/write properties are set to initial values.
|
||||||
|
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandText"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<i>cmdText</i>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandTimeout"/>
|
||||||
|
</term>
|
||||||
|
<term>0</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandType"/>
|
||||||
|
</term>
|
||||||
|
<term>CommandType.Text</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="Connection"/>
|
||||||
|
</term>
|
||||||
|
<term>Null</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value for any of these properties through a separate call to
|
||||||
|
the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and
|
||||||
|
sets some of its properties.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim sql as String = "SELECT * FROM mytable"
|
||||||
|
Dim myCommand As New MySqlCommand(sql)
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
string sql = "SELECT * FROM mytable";
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(sql);
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</ctor2>
|
||||||
|
|
||||||
|
<ctor3>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlCommand"/> class
|
||||||
|
with the text of the query and a <see cref="MySqlConnection"/>.
|
||||||
|
</summary>
|
||||||
|
<param name="cmdText">The text of the query.</param>
|
||||||
|
<param name="connection">
|
||||||
|
A <see cref="MySqlConnection"/> that represents the
|
||||||
|
connection to an instance of SQL Server.
|
||||||
|
</param>
|
||||||
|
<remarks>
|
||||||
|
When an instance of <see cref="MySqlCommand"/> is created,
|
||||||
|
the following read/write properties are set to initial values.
|
||||||
|
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandText"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<i>cmdText</i>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandTimeout"/>
|
||||||
|
</term>
|
||||||
|
<term>0</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandType"/>
|
||||||
|
</term>
|
||||||
|
<term>CommandType.Text</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="Connection"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<i>connection</i>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value for any of these properties through a separate call to
|
||||||
|
the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and
|
||||||
|
sets some of its properties.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim conn as new MySqlConnection("server=myServer")
|
||||||
|
Dim sql as String = "SELECT * FROM mytable"
|
||||||
|
Dim myCommand As New MySqlCommand(sql, conn)
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlConnection conn = new MySqlConnection("server=myserver")
|
||||||
|
string sql = "SELECT * FROM mytable";
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(sql, conn);
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
|
||||||
|
</ctor3>
|
||||||
|
|
||||||
|
<ctor4>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlCommand"/> class
|
||||||
|
with the text of the query, a <see cref="MySqlConnection"/>, and the
|
||||||
|
<see cref="MySqlTransaction"/>.
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
<param name="cmdText">The text of the query.</param>
|
||||||
|
<param name="connection">
|
||||||
|
A <see cref="MySqlConnection"/> that represents the
|
||||||
|
connection to an instance of SQL Server.
|
||||||
|
</param>
|
||||||
|
<param name="transaction">
|
||||||
|
The <see cref="MySqlTransaction"/> in which the <see cref="MySqlCommand"/> executes.
|
||||||
|
</param>
|
||||||
|
<remarks>
|
||||||
|
When an instance of <see cref="MySqlCommand"/> is created,
|
||||||
|
the following read/write properties are set to initial values.
|
||||||
|
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandText"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<i>cmdText</i>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandTimeout"/>
|
||||||
|
</term>
|
||||||
|
<term>0</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="CommandType"/>
|
||||||
|
</term>
|
||||||
|
<term>CommandType.Text</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="Connection"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<i>connection</i>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value for any of these properties through a separate call to
|
||||||
|
the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and
|
||||||
|
sets some of its properties.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim conn as new MySqlConnection("server=myServer")
|
||||||
|
conn.Open();
|
||||||
|
Dim txn as MySqlTransaction = conn.BeginTransaction()
|
||||||
|
Dim sql as String = "SELECT * FROM mytable"
|
||||||
|
Dim myCommand As New MySqlCommand(sql, conn, txn)
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlConnection conn = new MySqlConnection("server=myserver")
|
||||||
|
conn.Open();
|
||||||
|
MySqlTransaction txn = conn.BeginTransaction();
|
||||||
|
string sql = "SELECT * FROM mytable";
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(sql, conn, txn);
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
</ctor4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ExecuteNonQuery>
|
||||||
|
<summary>
|
||||||
|
Executes a SQL statement against the connection and returns the number of rows affected.
|
||||||
|
</summary>
|
||||||
|
<returns>Number of rows affected</returns>
|
||||||
|
<remarks>
|
||||||
|
You can use ExecuteNonQuery to perform any type of database operation,
|
||||||
|
however any resultsets returned will not be available. Any output parameters
|
||||||
|
used in calling a stored procedure will be populated with data and can be
|
||||||
|
retrieved after execution is complete.
|
||||||
|
For UPDATE, INSERT, and DELETE statements, the return value is the number
|
||||||
|
of rows affected by the command. For all other types of statements, the return
|
||||||
|
value is -1.
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a MySqlCommand and then
|
||||||
|
executes it using ExecuteNonQuery. The example is passed a string that is a
|
||||||
|
SQL statement (such as UPDATE, INSERT, or DELETE) and a string to use to
|
||||||
|
connect to the data source.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand(myExecuteQuery As String, myConnection As MySqlConnection)
|
||||||
|
Dim myCommand As New MySqlCommand(myExecuteQuery, myConnection)
|
||||||
|
myCommand.Connection.Open()
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myConnection.Close()
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand(string myExecuteQuery, MySqlConnection myConnection)
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(myExecuteQuery, myConnection);
|
||||||
|
myCommand.Connection.Open();
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</ExecuteNonQuery>
|
||||||
|
|
||||||
|
<ExecuteReader1>
|
||||||
|
<summary>
|
||||||
|
Sends the <see cref="CommandText"/> to the <see cref="MySqlConnection">Connection</see>,
|
||||||
|
and builds a <see cref="MySqlDataReader"/> using one of the <see cref="CommandBehavior"/> values.
|
||||||
|
</summary>
|
||||||
|
<param name="behavior">
|
||||||
|
One of the <see cref="CommandBehavior"/> values.
|
||||||
|
</param>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When the <see cref="CommandType"/> property is set to <B>StoredProcedure</B>,
|
||||||
|
the <see cref="CommandText"/> property should be set to the name of the stored
|
||||||
|
procedure. The command executes this stored procedure when you call
|
||||||
|
<B>ExecuteReader</B>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The <see cref="MySqlDataReader"/> supports a special mode that enables large binary
|
||||||
|
values to be read efficiently. For more information, see the <B>SequentialAccess</B>
|
||||||
|
setting for <see cref="CommandBehavior"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
While the <see cref="MySqlDataReader"/> is in use, the associated
|
||||||
|
<see cref="MySqlConnection"/> is busy serving the <B>MySqlDataReader</B>.
|
||||||
|
While in this state, no other operations can be performed on the
|
||||||
|
<B>MySqlConnection</B> other than closing it. This is the case until the
|
||||||
|
<see cref="MySqlDataReader.Close"/> method of the <B>MySqlDataReader</B> is called.
|
||||||
|
If the <B>MySqlDataReader</B> is created with <B>CommandBehavior</B> set to
|
||||||
|
<B>CloseConnection</B>, closing the <B>MySqlDataReader</B> closes the connection
|
||||||
|
automatically.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
When calling ExecuteReader with the SingleRow behavior, you should be aware that using a <i>limit</i>
|
||||||
|
clause in your SQL will cause all rows (up to the limit given) to be retrieved by the client. The
|
||||||
|
<see cref="MySqlDataReader.Read"/> method will still return false after the first row but pulling all rows of data
|
||||||
|
into the client will have a performance impact. If the <i>limit</i> clause is not necessary, it should
|
||||||
|
be avoided.
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
<returns>
|
||||||
|
A <see cref="MySqlDataReader"/> object.
|
||||||
|
</returns>
|
||||||
|
</ExecuteReader1>
|
||||||
|
|
||||||
|
|
||||||
|
<ExecuteReader>
|
||||||
|
<summary>
|
||||||
|
Sends the <see cref="CommandText"/> to the <see cref="MySqlConnection">Connection</see>
|
||||||
|
and builds a <see cref="MySqlDataReader"/>.
|
||||||
|
</summary>
|
||||||
|
<returns>
|
||||||
|
A <see cref="MySqlDataReader"/> object.
|
||||||
|
</returns>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When the <see cref="CommandType"/> property is set to <B>StoredProcedure</B>,
|
||||||
|
the <see cref="CommandText"/> property should be set to the name of the stored
|
||||||
|
procedure. The command executes this stored procedure when you call
|
||||||
|
<B>ExecuteReader</B>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
While the <see cref="MySqlDataReader"/> is in use, the associated
|
||||||
|
<see cref="MySqlConnection"/> is busy serving the <B>MySqlDataReader</B>.
|
||||||
|
While in this state, no other operations can be performed on the
|
||||||
|
<B>MySqlConnection</B> other than closing it. This is the case until the
|
||||||
|
<see cref="MySqlDataReader.Close"/> method of the <B>MySqlDataReader</B> is called.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/>, then executes it by
|
||||||
|
passing a string that is a SQL SELECT statement, and a string to use to connect to the
|
||||||
|
data source.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlDataReader(mySelectQuery As String, myConnection As MySqlConnection)
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
|
||||||
|
myConnection.Open()
|
||||||
|
Dim myReader As MySqlDataReader
|
||||||
|
myReader = myCommand.ExecuteReader()
|
||||||
|
Try
|
||||||
|
While myReader.Read()
|
||||||
|
Console.WriteLine(myReader.GetString(0))
|
||||||
|
End While
|
||||||
|
Finally
|
||||||
|
myReader.Close
|
||||||
|
myConnection.Close
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlDataReader(string mySelectQuery, MySqlConnection myConnection)
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery, myConnection);
|
||||||
|
myConnection.Open();
|
||||||
|
MMySqlDataReader myReader;
|
||||||
|
myReader = myCommand.ExecuteReader();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
while(myReader.Read())
|
||||||
|
{
|
||||||
|
Console.WriteLine(myReader.GetString(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
myReader.Close();
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</ExecuteReader>
|
||||||
|
|
||||||
|
|
||||||
|
<Prepare>
|
||||||
|
<summary>
|
||||||
|
Creates a prepared version of the command on an instance of MySQL Server.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
Prepared statements are only supported on MySQL version 4.1 and higher. Calling
|
||||||
|
prepare while connected to earlier versions of MySQL will succeed but will execute
|
||||||
|
the statement in the same way as unprepared.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example demonstrates the use of the <b>Prepare</b> method.
|
||||||
|
<code lang="VB.NET">
|
||||||
|
public sub PrepareExample()
|
||||||
|
Dim cmd as New MySqlCommand("INSERT INTO mytable VALUES (@val)", myConnection)
|
||||||
|
cmd.Parameters.Add( "@val", 10 )
|
||||||
|
cmd.Prepare()
|
||||||
|
cmd.ExecuteNonQuery()
|
||||||
|
|
||||||
|
cmd.Parameters(0).Value = 20
|
||||||
|
cmd.ExecuteNonQuery()
|
||||||
|
end sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
private void PrepareExample()
|
||||||
|
{
|
||||||
|
MySqlCommand cmd = new MySqlCommand("INSERT INTO mytable VALUES (@val)", myConnection);
|
||||||
|
cmd.Parameters.Add( "@val", 10 );
|
||||||
|
cmd.Prepare();
|
||||||
|
cmd.ExecuteNonQuery();
|
||||||
|
|
||||||
|
cmd.Parameters[0].Value = 20;
|
||||||
|
cmd.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Prepare>
|
||||||
|
|
||||||
|
<ExecuteScalar>
|
||||||
|
<summary>
|
||||||
|
Executes the query, and returns the first column of the first row in the
|
||||||
|
result set returned by the query. Extra columns or rows are ignored.
|
||||||
|
</summary>
|
||||||
|
<returns>
|
||||||
|
The first column of the first row in the result set, or a null reference if the
|
||||||
|
result set is empty
|
||||||
|
</returns>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
Use the <B>ExecuteScalar</B> method to retrieve a single value (for example,
|
||||||
|
an aggregate value) from a database. This requires less code than using the
|
||||||
|
<see cref="ExecuteReader()"/> method, and then performing the operations necessary
|
||||||
|
to generate the single value using the data returned by a <see cref="MySqlDataReader"/>
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and then
|
||||||
|
executes it using <B>ExecuteScalar</B>. The example is passed a string that is a
|
||||||
|
SQL statement that returns an aggregate result, and a string to use to
|
||||||
|
connect to the data source.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand(myScalarQuery As String, myConnection As MySqlConnection)
|
||||||
|
Dim myCommand As New MySqlCommand(myScalarQuery, myConnection)
|
||||||
|
myCommand.Connection.Open()
|
||||||
|
myCommand.ExecuteScalar()
|
||||||
|
myConnection.Close()
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand(string myScalarQuery, MySqlConnection myConnection)
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(myScalarQuery, myConnection);
|
||||||
|
myCommand.Connection.Open();
|
||||||
|
myCommand.ExecuteScalar();
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
<code lang="C++">
|
||||||
|
public:
|
||||||
|
void CreateMySqlCommand(String* myScalarQuery, MySqlConnection* myConnection)
|
||||||
|
{
|
||||||
|
MySqlCommand* myCommand = new MySqlCommand(myScalarQuery, myConnection);
|
||||||
|
myCommand->Connection->Open();
|
||||||
|
myCommand->ExecuteScalar();
|
||||||
|
myConnection->Close();
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
|
||||||
|
</example>
|
||||||
|
</ExecuteScalar>
|
||||||
|
|
||||||
|
<CommandText>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the SQL statement to execute at the data source.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The SQL statement or stored procedure to execute. The default is an empty string.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When the <see cref="CommandType"/> property is set to <B>StoredProcedure</B>,
|
||||||
|
the <B>CommandText</B> property should be set to the name of the stored procedure.
|
||||||
|
The user may be required to use escape character syntax if the stored procedure name
|
||||||
|
contains any special characters. The command executes this stored procedure when
|
||||||
|
you call one of the Execute methods. Starting with Connector/Net 5.0, having both a stored function
|
||||||
|
and stored procedure with the same name in the same database is not supported. It is
|
||||||
|
suggested that you provide unqiue names for your stored routines.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and sets some of its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim myCommand As New MySqlCommand()
|
||||||
|
myCommand.CommandText = "SELECT * FROM Mytable ORDER BY id"
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand();
|
||||||
|
myCommand.CommandText = "SELECT * FROM mytable ORDER BY id";
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</CommandText>
|
||||||
|
|
||||||
|
<CommandTimeout>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the wait time before terminating the attempt to execute a command
|
||||||
|
and generating an error.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The time (in seconds) to wait for the command to execute. The default is 30
|
||||||
|
seconds.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
CommandTimeout is dependent on the ability of MySQL to cancel an executing query.
|
||||||
|
Because of this, CommandTimeout is only supported when connected to MySQL
|
||||||
|
version 5.0.0 or higher.
|
||||||
|
</remarks>
|
||||||
|
</CommandTimeout>
|
||||||
|
|
||||||
|
<CommandType>
|
||||||
|
<summary>
|
||||||
|
Gets or sets a value indicating how the <see cref="CommandText"/> property is to be interpreted.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
One of the <see cref="System.Data.CommandType"/> values. The default is <B>Text</B>.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When you set the <B>CommandType</B> property to <B>StoredProcedure</B>, you
|
||||||
|
should set the <see cref="CommandText"/> property to the name of the stored
|
||||||
|
procedure. The command executes this stored procedure when you call one of the
|
||||||
|
Execute methods.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and sets some of its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim myCommand As New MySqlCommand()
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand();
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</CommandType>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<Connection>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the <see cref="MySqlConnection"/> used by this instance of the
|
||||||
|
<see cref="MySqlCommand"/>.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The connection to a data source. The default value is a null reference
|
||||||
|
(<B>Nothing</B> in Visual Basic).
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
If you set <B>Connection</B> while a transaction is in progress and the
|
||||||
|
<see cref="Transaction"/> property is not null, an <see cref="InvalidOperationException"/>
|
||||||
|
is generated. If the <B>Transaction</B> property is not null and the transaction
|
||||||
|
has already been committed or rolled back, <B>Transaction</B> is set to
|
||||||
|
null.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and sets some of its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand()
|
||||||
|
Dim mySelectQuery As String = "SELECT * FROM mytable ORDER BY id"
|
||||||
|
Dim myConnectString As String = "Persist Security Info=False;database=test;server=myServer"
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery)
|
||||||
|
myCommand.Connection = New MySqlConnection(myConnectString)
|
||||||
|
myCommand.CommandType = CommandType.Text
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand()
|
||||||
|
{
|
||||||
|
string mySelectQuery = "SELECT * FROM mytable ORDER BY id";
|
||||||
|
string myConnectString = "Persist Security Info=False;database=test;server=myServer";
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery);
|
||||||
|
myCommand.Connection = new MySqlConnection(myConnectString);
|
||||||
|
myCommand.CommandType = CommandType.Text;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Connection>
|
||||||
|
|
||||||
|
<IsPrepared>
|
||||||
|
</IsPrepared>
|
||||||
|
|
||||||
|
<LastInsertedId>
|
||||||
|
<summary>Provides the id of the last inserted row.</summary>
|
||||||
|
<value>
|
||||||
|
Id of the last inserted row. -1 if none exists.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
An important point to remember is that this property can be used
|
||||||
|
in batch SQL scenarios but it's important to remember that it will
|
||||||
|
only reflect the insert id from the last insert statement in the batch.
|
||||||
|
|
||||||
|
This property can also be used when the batch includes select statements
|
||||||
|
and ExecuteReader is used. This property can be consulted during result set
|
||||||
|
processing.
|
||||||
|
</remarks>
|
||||||
|
</LastInsertedId>
|
||||||
|
|
||||||
|
<Parameters>
|
||||||
|
<summary>
|
||||||
|
Get the <see cref="MySqlParameterCollection"/>
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The parameters of the SQL statement or stored procedure. The default is
|
||||||
|
an empty collection.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
Connector/Net does not support unnamed parameters. Every parameter added to the collection must
|
||||||
|
have an associated name.
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and displays its parameters.
|
||||||
|
To accomplish this, the method is passed a <see cref="MySqlConnection"/>, a query string
|
||||||
|
that is a SQL SELECT statement, and an array of <see cref="MySqlParameter"/> objects.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateMySqlCommand(myConnection As MySqlConnection, _
|
||||||
|
mySelectQuery As String, myParamArray() As MySqlParameter)
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
|
||||||
|
myCommand.CommandText = "SELECT id, name FROM mytable WHERE age=@age"
|
||||||
|
myCommand.UpdatedRowSource = UpdateRowSource.Both
|
||||||
|
myCommand.Parameters.Add(myParamArray)
|
||||||
|
Dim j As Integer
|
||||||
|
For j = 0 To myCommand.Parameters.Count - 1
|
||||||
|
myCommand.Parameters.Add(myParamArray(j))
|
||||||
|
Next j
|
||||||
|
Dim myMessage As String = ""
|
||||||
|
Dim i As Integer
|
||||||
|
For i = 0 To myCommand.Parameters.Count - 1
|
||||||
|
myMessage += myCommand.Parameters(i).ToString() & ControlChars.Cr
|
||||||
|
Next i
|
||||||
|
Console.WriteLine(myMessage)
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void CreateMySqlCommand(MySqlConnection myConnection, string mySelectQuery,
|
||||||
|
MySqlParameter[] myParamArray)
|
||||||
|
{
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery, myConnection);
|
||||||
|
myCommand.CommandText = "SELECT id, name FROM mytable WHERE age=@age";
|
||||||
|
myCommand.Parameters.Add(myParamArray);
|
||||||
|
for (int j=0; j<myParamArray.Length; j++)
|
||||||
|
{
|
||||||
|
myCommand.Parameters.Add(myParamArray[j]) ;
|
||||||
|
}
|
||||||
|
string myMessage = "";
|
||||||
|
for (int i = 0; i < myCommand.Parameters.Count; i++)
|
||||||
|
{
|
||||||
|
myMessage += myCommand.Parameters[i].ToString() + "\n";
|
||||||
|
}
|
||||||
|
MessageBox.Show(myMessage);
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Parameters>
|
||||||
|
|
||||||
|
<Transaction>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the <see cref="MySqlTransaction"/> within which the <see cref="MySqlCommand"/> executes.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The <see cref="MySqlTransaction"/>. The default value is a null reference (<B>Nothing</B> in Visual Basic).
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
You cannot set the <B>Transaction</B> property if it is already set to a
|
||||||
|
specific value, and the command is in the process of executing. If you set the
|
||||||
|
transaction property to a <see cref="MySqlTransaction"/> object that is not connected
|
||||||
|
to the same <see cref="MySqlConnection"/> as the <see cref="MySqlCommand"/> object,
|
||||||
|
an exception will be thrown the next time you attempt to execute a statement.
|
||||||
|
</remarks>
|
||||||
|
</Transaction>
|
||||||
|
|
||||||
|
<UpdatedRowSource>
|
||||||
|
<summary>
|
||||||
|
Gets or sets how command results are applied to the <see cref="DataRow"/>
|
||||||
|
when used by the <see cref="System.Data.Common.DbDataAdapter.Update"/> method
|
||||||
|
of the <see cref="System.Data.Common.DbDataAdapter"/>.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
One of the <see cref="UpdateRowSource"/> values.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
The default <see cref="System.Data.UpdateRowSource"/> value is
|
||||||
|
<B>Both</B> unless the command is automatically generated (as in the case of the
|
||||||
|
<see cref="MySqlCommandBuilder"/>), in which case the default is <B>None</B>.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</UpdatedRowSource>
|
||||||
|
|
||||||
|
</docs>
|
321
Utilities/Utilities/docs/MySqlCommandBuilder.xml
Normal file
321
Utilities/Utilities/docs/MySqlCommandBuilder.xml
Normal file
@ -0,0 +1,321 @@
|
|||||||
|
<docs>
|
||||||
|
<class>
|
||||||
|
<summary>
|
||||||
|
Automatically generates single-table commands used to reconcile changes made to a DataSet with the associated MySQL database. This class cannot be inherited.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
The <see cref="MySqlDataAdapter"/> does not automatically generate the SQL statements required to
|
||||||
|
reconcile changes made to a <see cref="System.Data.DataSet">DataSet</see> with the associated instance of MySQL.
|
||||||
|
However, you can create a <B>MySqlCommandBuilder</B> object to automatically generate SQL statements for
|
||||||
|
single-table updates if you set the <see cref="MySqlDataAdapter.SelectCommand">SelectCommand</see> property
|
||||||
|
of the <B>MySqlDataAdapter</B>. Then, any additional SQL statements that you do not set are generated by the
|
||||||
|
<B>MySqlCommandBuilder</B>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <B>MySqlCommandBuilder</B> registers itself as a listener for <see cref="MySqlDataAdapter.OnRowUpdating">RowUpdating</see>
|
||||||
|
events whenever you set the <see cref="DataAdapter"/> property. You can only associate one
|
||||||
|
<B>MySqlDataAdapter</B> or <B>MySqlCommandBuilder</B> object with each other at one time.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To generate INSERT, UPDATE, or DELETE statements, the <B>MySqlCommandBuilder</B> uses the
|
||||||
|
<B>SelectCommand</B> property to retrieve a required set of metadata automatically. If you change
|
||||||
|
the <B>SelectCommand</B> after the metadata has is retrieved (for example, after the first update), you
|
||||||
|
should call the <see cref="RefreshSchema"/> method to update the metadata.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <B>SelectCommand</B> must also return at least one primary key or unique
|
||||||
|
column. If none are present, an <I>InvalidOperation</I> exception is generated,
|
||||||
|
and the commands are not generated.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <B>MySqlCommandBuilder</B> also uses the <see cref="MySqlCommand.Connection">Connection</see>,
|
||||||
|
<see cref="MySqlCommand.CommandTimeout">CommandTimeout</see>, and <see cref="MySqlCommand.Transaction">Transaction</see>
|
||||||
|
properties referenced by the <B>SelectCommand</B>. The user should call
|
||||||
|
<B>RefreshSchema</B> if any of these properties are modified, or if the
|
||||||
|
<B>SelectCommand</B> itself is replaced. Otherwise the <see cref="MySqlDataAdapter.InsertCommand">InsertCommand</see>,
|
||||||
|
<see cref="MySqlDataAdapter.UpdateCommand">UpdateCommand</see>, and
|
||||||
|
<see cref="MySqlDataAdapter.DeleteCommand">DeleteCommand</see> properties retain
|
||||||
|
their previous values.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If you call <i>Dispose</i>, the <B>MySqlCommandBuilder</B> is disassociated
|
||||||
|
from the <B>MySqlDataAdapter</B>, and the generated commands are no longer used.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
Caution must be used when using MySqlCOmmandBuilder on MySql 4.0 systems. With MySql 4.0,
|
||||||
|
database/schema information is not provided to the connector for a query. This means that
|
||||||
|
a query that pulls columns from two identically named tables in two or more different databases
|
||||||
|
will not cause an exception to be thrown but will not work correctly. Even more dangerous
|
||||||
|
is the situation where your select statement references database X but is executed in
|
||||||
|
database Y and both databases have tables with similar layouts. This situation can cause
|
||||||
|
unwanted changes or deletes.
|
||||||
|
This note does not apply to MySQL versions 4.1 and later.
|
||||||
|
</note>
|
||||||
|
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example uses the <see cref="MySqlCommand"/>, along
|
||||||
|
<see cref="MySqlDataAdapter"/> and <see cref="MySqlConnection"/>, to
|
||||||
|
select rows from a data source. The example is passed an initialized
|
||||||
|
<see cref="System.Data.DataSet"/>, a connection string, a
|
||||||
|
query string that is a SQL SELECT statement, and a string that is the
|
||||||
|
name of the database table. The example then creates a <B>MySqlCommandBuilder</B>.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Shared Function SelectRows(myConnection As String, mySelectQuery As String, myTableName As String) As DataSet
|
||||||
|
Dim myConn As New MySqlConnection(myConnection)
|
||||||
|
Dim myDataAdapter As New MySqlDataAdapter()
|
||||||
|
myDataAdapter.SelectCommand = New MySqlCommand(mySelectQuery, myConn)
|
||||||
|
Dim cb As SqlCommandBuilder = New MySqlCommandBuilder(myDataAdapter)
|
||||||
|
|
||||||
|
myConn.Open()
|
||||||
|
|
||||||
|
Dim ds As DataSet = New DataSet
|
||||||
|
myDataAdapter.Fill(ds, myTableName)
|
||||||
|
|
||||||
|
' Code to modify data in DataSet here
|
||||||
|
|
||||||
|
' Without the MySqlCommandBuilder this line would fail.
|
||||||
|
myDataAdapter.Update(ds, myTableName)
|
||||||
|
|
||||||
|
myConn.Close()
|
||||||
|
End Function 'SelectRows
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static DataSet SelectRows(string myConnection, string mySelectQuery, string myTableName)
|
||||||
|
{
|
||||||
|
MySqlConnection myConn = new MySqlConnection(myConnection);
|
||||||
|
MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
|
||||||
|
myDataAdapter.SelectCommand = new MySqlCommand(mySelectQuery, myConn);
|
||||||
|
MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
|
||||||
|
|
||||||
|
myConn.Open();
|
||||||
|
|
||||||
|
DataSet ds = new DataSet();
|
||||||
|
myDataAdapter.Fill(ds, myTableName);
|
||||||
|
|
||||||
|
//code to modify data in DataSet here
|
||||||
|
|
||||||
|
//Without the MySqlCommandBuilder this line would fail
|
||||||
|
myDataAdapter.Update(ds, myTableName);
|
||||||
|
|
||||||
|
myConn.Close();
|
||||||
|
|
||||||
|
return ds;
|
||||||
|
}
|
||||||
|
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</class>
|
||||||
|
|
||||||
|
<Ctor>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlCommandBuilder"/> class.
|
||||||
|
</summary>
|
||||||
|
</Ctor>
|
||||||
|
|
||||||
|
<Ctor2>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlCommandBuilder"/> class
|
||||||
|
with the associated <see cref="MySqlDataAdapter"/> object.
|
||||||
|
</summary>
|
||||||
|
<param name="adapter">
|
||||||
|
The <see cref="MySqlDataAdapter"/> to use.
|
||||||
|
</param>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
The <see cref="MySqlCommandBuilder"/> registers itself as a listener for
|
||||||
|
<see cref="MySqlDataAdapter.RowUpdating"/> events that are generated by the
|
||||||
|
<see cref="MySqlDataAdapter"/> specified in this property.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When you create a new instance <B>MySqlCommandBuilder</B>, any existing
|
||||||
|
<B>MySqlCommandBuilder</B> associated with this <B>MySqlDataAdapter</B>
|
||||||
|
is released.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</Ctor2>
|
||||||
|
|
||||||
|
|
||||||
|
<DataAdapter>
|
||||||
|
<summary>
|
||||||
|
Gets or sets a <see cref="MySqlDataAdapter"/> object for which SQL statements are automatically generated.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
A <see cref="MySqlDataAdapter"/> object.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
The <see cref="MySqlCommandBuilder"/> registers itself as a listener for
|
||||||
|
<see cref="MySqlDataAdapter.RowUpdating"/> events that are generated by the
|
||||||
|
<see cref="MySqlDataAdapter"/> specified in this property.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When you create a new instance <B>MySqlCommandBuilder</B>, any existing
|
||||||
|
<B>MySqlCommandBuilder</B> associated with this <B>MySqlDataAdapter</B>
|
||||||
|
is released.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</DataAdapter>
|
||||||
|
|
||||||
|
<QuotePrefix>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the beginning character or characters to use when specifying MySQL
|
||||||
|
database objects (for example, tables or columns) whose names contain
|
||||||
|
characters such as spaces or reserved tokens.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The beginning character or characters to use. The default value is `.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
Database objects in MySQL can contain special characters such as spaces that would
|
||||||
|
make normal SQL strings impossible to correctly parse. Use of the <b>QuotePrefix</b>
|
||||||
|
and the <see cref="QuoteSuffix"/> properties allows the <see cref="MySqlCommandBuilder"/>
|
||||||
|
to build SQL commands that handle this situation.
|
||||||
|
</remarks>
|
||||||
|
</QuotePrefix>
|
||||||
|
|
||||||
|
<QuoteSuffix>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the beginning character or characters to use when specifying MySQL
|
||||||
|
database objects (for example, tables or columns) whose names contain
|
||||||
|
characters such as spaces or reserved tokens.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
The beginning character or characters to use. The default value is `.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
Database objects in MySQL can contain special characters such as spaces that would
|
||||||
|
make normal SQL strings impossible to correctly parse. Use of the <see cref="QuotePrefix"/>
|
||||||
|
and the <b>QuoteSuffix</b> properties allows the <see cref="MySqlCommandBuilder"/>
|
||||||
|
to build SQL commands that handle this situation.
|
||||||
|
</remarks>
|
||||||
|
</QuoteSuffix>
|
||||||
|
|
||||||
|
<DeriveParameters>
|
||||||
|
<summary>
|
||||||
|
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
</remarks>
|
||||||
|
</DeriveParameters>
|
||||||
|
|
||||||
|
<GetDeleteCommand>
|
||||||
|
<summary>
|
||||||
|
Gets the automatically generated <see cref="MySqlCommand"/> object
|
||||||
|
required to perform deletions on the database.
|
||||||
|
</summary>
|
||||||
|
<returns>
|
||||||
|
The <see cref="MySqlCommand"/> object generated to handle delete operations.
|
||||||
|
</returns>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
An application can use the <B>GetDeleteCommand</B> method for informational
|
||||||
|
or troubleshooting purposes because it returns the <see cref="MySqlCommand"/>
|
||||||
|
object to be executed.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
You can also use <B>GetDeleteCommand</B> as the basis of a modified command.
|
||||||
|
For example, you might call <B>GetDeleteCommand</B> and modify the
|
||||||
|
<see cref="MySqlCommand.CommandTimeout"/> value, and then explicitly set that on the
|
||||||
|
<see cref="MySqlDataAdapter"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
After the SQL statement is first generated, the application must explicitly
|
||||||
|
call <see cref="RefreshSchema"/> if it changes the statement in any way.
|
||||||
|
Otherwise, the <B>GetDeleteCommand</B> will be still be using information
|
||||||
|
from the previous statement, which might not be correct. The SQL statements
|
||||||
|
are first generated either when the application calls
|
||||||
|
<see cref="System.Data.Common.DataAdapter.Update"/> or <B>GetDeleteCommand</B>.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</GetDeleteCommand>
|
||||||
|
|
||||||
|
<GetInsertCommand>
|
||||||
|
<summary>
|
||||||
|
Gets the automatically generated <see cref="MySqlCommand"/> object
|
||||||
|
required to perform insertions on the database.
|
||||||
|
</summary>
|
||||||
|
<returns>
|
||||||
|
The <see cref="MySqlCommand"/> object generated to handle insert operations.
|
||||||
|
</returns>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
An application can use the <B>GetInsertCommand</B> method for informational
|
||||||
|
or troubleshooting purposes because it returns the <see cref="MySqlCommand"/>
|
||||||
|
object to be executed.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
You can also use the <B>GetInsertCommand</B> as the basis of a modified command.
|
||||||
|
For example, you might call <B>GetInsertCommand</B> and modify the
|
||||||
|
<see cref="MySqlCommand.CommandTimeout"/> value, and then explicitly set that on the
|
||||||
|
<see cref="MySqlDataAdapter"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
After the SQL statement is first generated, the application must explicitly
|
||||||
|
call <see cref="RefreshSchema"/> if it changes the statement in any way.
|
||||||
|
Otherwise, the <B>GetInsertCommand</B> will be still be using information
|
||||||
|
from the previous statement, which might not be correct. The SQL statements
|
||||||
|
are first generated either when the application calls
|
||||||
|
<see cref="System.Data.Common.DataAdapter.Update"/> or <B>GetInsertCommand</B>.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</GetInsertCommand>
|
||||||
|
|
||||||
|
<GetUpdateCommand>
|
||||||
|
<summary>
|
||||||
|
Gets the automatically generated <see cref="MySqlCommand"/> object
|
||||||
|
required to perform updates on the database.
|
||||||
|
</summary>
|
||||||
|
<returns>
|
||||||
|
The <see cref="MySqlCommand"/> object generated to handle update operations.
|
||||||
|
</returns>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
An application can use the <B>GetUpdateCommand</B> method for informational
|
||||||
|
or troubleshooting purposes because it returns the <see cref="MySqlCommand"/>
|
||||||
|
object to be executed.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
You can also use <B>GetUpdateCommand</B> as the basis of a modified command.
|
||||||
|
For example, you might call <B>GetUpdateCommand</B> and modify the
|
||||||
|
<see cref="MySqlCommand.CommandTimeout"/> value, and then explicitly set that on the
|
||||||
|
<see cref="MySqlDataAdapter"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
After the SQL statement is first generated, the application must explicitly
|
||||||
|
call <see cref="RefreshSchema"/> if it changes the statement in any way.
|
||||||
|
Otherwise, the <B>GetUpdateCommand</B> will be still be using information
|
||||||
|
from the previous statement, which might not be correct. The SQL statements
|
||||||
|
are first generated either when the application calls
|
||||||
|
<see cref="System.Data.Common.DataAdapter.Update"/> or <B>GetUpdateCommand</B>.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</GetUpdateCommand>
|
||||||
|
|
||||||
|
<RefreshSchema>
|
||||||
|
<summary>
|
||||||
|
Refreshes the database schema information used to generate INSERT, UPDATE, or
|
||||||
|
DELETE statements.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
An application should call <B>RefreshSchema</B> whenever the SELECT statement
|
||||||
|
associated with the <see cref="MySqlCommandBuilder"/> changes.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
An application should call <B>RefreshSchema</B> whenever the
|
||||||
|
<see cref="MySqlDataAdapter.SelectCommand"/> value of the <see cref="MySqlDataAdapter"/> changes.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</RefreshSchema>
|
||||||
|
|
||||||
|
</docs>
|
1248
Utilities/Utilities/docs/MySqlConnection.xml
Normal file
1248
Utilities/Utilities/docs/MySqlConnection.xml
Normal file
File diff suppressed because it is too large
Load Diff
55
Utilities/Utilities/docs/MySqlConnectionStringBuilder.xml
Normal file
55
Utilities/Utilities/docs/MySqlConnectionStringBuilder.xml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<docs>
|
||||||
|
<Server>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the name or address of the MySQL instance to connect to.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
If this property is not set, then the provider will attempt to
|
||||||
|
connect to <b>localhost</b> even though this property will return
|
||||||
|
<b>String.Empty</b>.
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
</example>
|
||||||
|
</Server>
|
||||||
|
|
||||||
|
<Database>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the name of the database that should be selected
|
||||||
|
when the connection is first opened.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
There is no default for this property and, if not set, the
|
||||||
|
connection will not have a current database until one is set
|
||||||
|
using the <see cref="ChangeDatabase"/> method.
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
</example>
|
||||||
|
</Database>
|
||||||
|
|
||||||
|
<ConnectionProtocol>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the connection protocol that is being used for this
|
||||||
|
connection.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
</example>
|
||||||
|
</ConnectionProtocol>
|
||||||
|
|
||||||
|
|
||||||
|
<PipeName>
|
||||||
|
<summary>
|
||||||
|
Gets or sets the name of the named pipe object that the provider
|
||||||
|
should use.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
This property has no effect unless the <see cref="ConnectionProtocol"/>
|
||||||
|
property has been set to <b>NamedPipe</b>.
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
</example>
|
||||||
|
</PipeName>
|
||||||
|
|
||||||
|
|
||||||
|
</docs>
|
801
Utilities/Utilities/docs/MySqlDataAdapter.xml
Normal file
801
Utilities/Utilities/docs/MySqlDataAdapter.xml
Normal file
@ -0,0 +1,801 @@
|
|||||||
|
<docs>
|
||||||
|
<class>
|
||||||
|
<summary>
|
||||||
|
Represents a set of data commands and a database connection that are used to fill a dataset and update a MySQL database. This class cannot be inherited.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
The <B>MySQLDataAdapter</B>, serves as a bridge between a <see cref="System.Data.DataSet"/>
|
||||||
|
and MySQL for retrieving and saving data. The <B>MySQLDataAdapter</B> provides this
|
||||||
|
bridge by mapping <see cref="DbDataAdapter.Fill(DataSet)"/>, which changes the data in the
|
||||||
|
<B>DataSet</B> to match the data in the data source, and <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/>,
|
||||||
|
which changes the data in the data source to match the data in the <B>DataSet</B>,
|
||||||
|
using the appropriate SQL statements against the data source.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When the <B>MySQLDataAdapter</B> fills a <B>DataSet</B>, it will create the necessary
|
||||||
|
tables and columns for the returned data if they do not already exist. However, primary
|
||||||
|
key information will not be included in the implicitly created schema unless the
|
||||||
|
<see cref="System.Data.MissingSchemaAction"/> property is set to <see cref="System.Data.MissingSchemaAction.AddWithKey"/>.
|
||||||
|
You may also have the <B>MySQLDataAdapter</B> create the schema of the <B>DataSet</B>,
|
||||||
|
including primary key information, before filling it with data using <see cref="System.Data.Common.DbDataAdapter.FillSchema(DataTable, SchemaType)"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
<B>MySQLDataAdapter</B> is used in conjunction with <see cref="MySqlConnection"/>
|
||||||
|
and <see cref="MySqlCommand"/> to increase performance when connecting to a MySQL database.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The <B>MySQLDataAdapter</B> also includes the <see cref="MySqlDataAdapter.SelectCommand"/>,
|
||||||
|
<see cref="MySqlDataAdapter.InsertCommand"/>, <see cref="MySqlDataAdapter.DeleteCommand"/>,
|
||||||
|
<see cref="MySqlDataAdapter.UpdateCommand"/>, and <see cref="DataAdapter.TableMappings"/>
|
||||||
|
properties to facilitate the loading and updating of data.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When an instance of <B>MySQLDataAdapter</B> is created, the read/write properties
|
||||||
|
are set to initial values. For a list of these values, see the <B>MySQLDataAdapter</B>
|
||||||
|
constructor.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
Please be aware that the <see cref="DataColumn"/> class allows only
|
||||||
|
Int16, Int32, and Int64 to have the AutoIncrement property set.
|
||||||
|
If you plan to use autoincremement columns with MySQL, you should consider
|
||||||
|
using signed integer columns.
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlCommand"/> and a <see cref="MySqlConnection"/>.
|
||||||
|
The <B>MySqlConnection</B> is opened and set as the <see cref="MySqlCommand.Connection"/> for the
|
||||||
|
<B>MySqlCommand</B>. The example then calls <see cref="MySqlCommand.ExecuteNonQuery"/>, and closes
|
||||||
|
the connection. To accomplish this, the <B>ExecuteNonQuery</B> is
|
||||||
|
passed a connection string and a query string that is a SQL INSERT
|
||||||
|
statement.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Function SelectRows(dataSet As DataSet, connection As String, query As String) As DataSet
|
||||||
|
Dim conn As New MySqlConnection(connection)
|
||||||
|
Dim adapter As New MySqlDataAdapter()
|
||||||
|
adapter.SelectCommand = new MySqlCommand(query, conn)
|
||||||
|
adapter.Fill(dataset)
|
||||||
|
Return dataset
|
||||||
|
End Function
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public DataSet SelectRows(DataSet dataset,string connection,string query)
|
||||||
|
{
|
||||||
|
MySqlConnection conn = new MySqlConnection(connection);
|
||||||
|
MySqlDataAdapter adapter = new MySqlDataAdapter();
|
||||||
|
adapter.SelectCommand = new MySqlCommand(query, conn);
|
||||||
|
adapter.Fill(dataset);
|
||||||
|
return dataset;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</class>
|
||||||
|
|
||||||
|
<Ctor>
|
||||||
|
<overloads></overloads>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the MySqlDataAdapter class.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When an instance of <see cref="MySqlDataAdapter"/> is created,
|
||||||
|
the following read/write properties are set to the following initial
|
||||||
|
values.
|
||||||
|
</para>
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingMappingAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingMappingAction.Passthrough</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingSchemaAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingSchemaAction.Add</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value of any of these properties through a separate call
|
||||||
|
to the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets some of
|
||||||
|
its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateSqlDataAdapter()
|
||||||
|
Dim conn As MySqlConnection = New MySqlConnection("Data Source=localhost;" & _
|
||||||
|
"database=test")
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
|
||||||
|
|
||||||
|
da.SelectCommand = New MySqlCommand("SELECT id, name FROM mytable", conn)
|
||||||
|
da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _
|
||||||
|
"VALUES (@id, @name)", conn)
|
||||||
|
da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=@id, name=@name " & _
|
||||||
|
"WHERE id=@oldId", conn)
|
||||||
|
da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn)
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static void CreateSqlDataAdapter()
|
||||||
|
{
|
||||||
|
MySqlConnection conn = new MySqlConnection("Data Source=localhost;database=test");
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter();
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
|
||||||
|
|
||||||
|
da.SelectCommand = new MySqlCommand("SELECT id, name FROM mytable", conn);
|
||||||
|
da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " +
|
||||||
|
"VALUES (@id, @name)", conn);
|
||||||
|
da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=@id, name=@name " +
|
||||||
|
"WHERE id=@oldId", conn);
|
||||||
|
da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn);
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Ctor>
|
||||||
|
|
||||||
|
<Ctor1>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlDataAdapter"/> class with
|
||||||
|
the specified <see cref="MySqlCommand"/> as the <see cref="SelectCommand"/>
|
||||||
|
property.
|
||||||
|
</summary>
|
||||||
|
<param name="selectCommand">
|
||||||
|
<see cref="MySqlCommand"/> that is a SQL SELECT statement or stored procedure and is set
|
||||||
|
as the <see cref="SelectCommand"/> property of the <see cref="MySqlDataAdapter"/>.
|
||||||
|
</param>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When an instance of <see cref="MySqlDataAdapter"/> is created,
|
||||||
|
the following read/write properties are set to the following initial
|
||||||
|
values.
|
||||||
|
</para>
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingMappingAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingMappingAction.Passthrough</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingSchemaAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingSchemaAction.Add</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value of any of these properties through a separate call
|
||||||
|
to the property.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When <B>SelectCommand</B> (or any of the other command properties) is assigned
|
||||||
|
to a previously created <see cref="MySqlCommand"/>, the <B>MySqlCommand</B> is not cloned.
|
||||||
|
The <B>SelectCommand</B> maintains a reference to the previously created <B>MySqlCommand</B>
|
||||||
|
object.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets some of
|
||||||
|
its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateSqlDataAdapter()
|
||||||
|
Dim conn As MySqlConnection = New MySqlConnection("Data Source=localhost;" & _
|
||||||
|
"database=test")
|
||||||
|
Dim cmd as new MySqlCommand("SELECT id, name FROM mytable", conn)
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter(cmd)
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
|
||||||
|
|
||||||
|
da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _
|
||||||
|
"VALUES (@id, @name)", conn)
|
||||||
|
da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=@id, name=@name " & _
|
||||||
|
"WHERE id=@oldId", conn)
|
||||||
|
da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn)
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static void CreateSqlDataAdapter()
|
||||||
|
{
|
||||||
|
MySqlConnection conn = new MySqlConnection("Data Source=localhost;database=test");
|
||||||
|
MySqlCommand cmd = new MySqlCommand("SELECT id, name FROM mytable", conn);
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
|
||||||
|
|
||||||
|
da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " +
|
||||||
|
"VALUES (@id, @name)", conn);
|
||||||
|
da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=@id, name=@name " +
|
||||||
|
"WHERE id=@oldId", conn);
|
||||||
|
da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn);
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Ctor1>
|
||||||
|
|
||||||
|
<Ctor2>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlDataAdapter"/> class with
|
||||||
|
a <see cref="SelectCommand"/> and a <see cref="MySqlConnection"/> object.
|
||||||
|
</summary>
|
||||||
|
<param name="selectCommandText">
|
||||||
|
A <b>String</b> that is a SQL SELECT statement or stored procedure to be used by
|
||||||
|
the <see cref="SelectCommand"/> property of the <see cref="MySqlDataAdapter"/>.
|
||||||
|
</param>
|
||||||
|
<param name="connection">
|
||||||
|
A <see cref="MySqlConnection"/> that represents the connection.
|
||||||
|
</param>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
This implementation of the <see cref="MySqlDataAdapter"/> opens and closes a <see cref="MySqlConnection"/>
|
||||||
|
if it is not already open. This can be useful in a an application that must call the
|
||||||
|
<see cref="DbDataAdapter.Fill(DataSet)"/> method for two or more <B>MySqlDataAdapter</B> objects.
|
||||||
|
If the <B>MySqlConnection</B> is already open, you must explicitly call
|
||||||
|
<see cref="MySqlConnection.Close"/> or <see cref="MySqlConnection.Dispose()"/> to close it.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When an instance of <see cref="MySqlDataAdapter"/> is created,
|
||||||
|
the following read/write properties are set to the following initial
|
||||||
|
values.
|
||||||
|
</para>
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingMappingAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingMappingAction.Passthrough</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingSchemaAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingSchemaAction.Add</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value of any of these properties through a separate call
|
||||||
|
to the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets some of
|
||||||
|
its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateSqlDataAdapter()
|
||||||
|
Dim conn As MySqlConnection = New MySqlConnection("Data Source=localhost;" & _
|
||||||
|
"database=test")
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter("SELECT id, name FROM mytable", conn)
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
|
||||||
|
|
||||||
|
da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _
|
||||||
|
"VALUES (@id, @name)", conn)
|
||||||
|
da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=@id, name=@name " & _
|
||||||
|
"WHERE id=@oldId", conn)
|
||||||
|
da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn)
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static void CreateSqlDataAdapter()
|
||||||
|
{
|
||||||
|
MySqlConnection conn = new MySqlConnection("Data Source=localhost;database=test");
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter("SELECT id, name FROM mytable", conn);
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
|
||||||
|
|
||||||
|
da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " +
|
||||||
|
"VALUES (@id, @name)", conn);
|
||||||
|
da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=@id, name=@name " +
|
||||||
|
"WHERE id=@oldId", conn);
|
||||||
|
da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn);
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Ctor2>
|
||||||
|
|
||||||
|
<Ctor3>
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="MySqlDataAdapter"/> class with
|
||||||
|
a <see cref="SelectCommand"/> and a connection string.
|
||||||
|
</summary>
|
||||||
|
<param name="selectCommandText">
|
||||||
|
A <see cref="string"/> that is a SQL SELECT statement or stored procedure to
|
||||||
|
be used by the <see cref="SelectCommand"/> property of the <see cref="MySqlDataAdapter"/>.
|
||||||
|
</param>
|
||||||
|
<param name="selectConnString">The connection string</param>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When an instance of <see cref="MySqlDataAdapter"/> is created,
|
||||||
|
the following read/write properties are set to the following initial
|
||||||
|
values.
|
||||||
|
</para>
|
||||||
|
<list type="table">
|
||||||
|
<listheader>
|
||||||
|
<term>Properties</term>
|
||||||
|
<term>Initial Value</term>
|
||||||
|
</listheader>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingMappingAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingMappingAction.Passthrough</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<term>
|
||||||
|
<see cref="MissingSchemaAction"/>
|
||||||
|
</term>
|
||||||
|
<term>
|
||||||
|
<B>MissingSchemaAction.Add</B>
|
||||||
|
</term>
|
||||||
|
</item>
|
||||||
|
</list>
|
||||||
|
<para>
|
||||||
|
You can change the value of any of these properties through a separate call
|
||||||
|
to the property.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets some of
|
||||||
|
its properties.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub CreateSqlDataAdapter()
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter("SELECT id, name FROM mytable", "Data Source=localhost;database=test")
|
||||||
|
Dim conn As MySqlConnection = da.SelectCommand.Connection
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
|
||||||
|
|
||||||
|
da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _
|
||||||
|
"VALUES (@id, @name)", conn)
|
||||||
|
da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=@id, name=@name " & _
|
||||||
|
"WHERE id=@oldId", conn)
|
||||||
|
da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn)
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name")
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static void CreateSqlDataAdapter()
|
||||||
|
{
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter("SELECT id, name FROM mytable", "Data Source=localhost;database=test");
|
||||||
|
MySqlConnection conn = da.SelectCommand.Connection;
|
||||||
|
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
|
||||||
|
|
||||||
|
da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " +
|
||||||
|
"VALUES (@id, @name)", conn);
|
||||||
|
da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=@id, name=@name " +
|
||||||
|
"WHERE id=@oldId", conn);
|
||||||
|
da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn);
|
||||||
|
|
||||||
|
da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
|
||||||
|
da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name");
|
||||||
|
da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
|
||||||
|
da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Ctor3>
|
||||||
|
|
||||||
|
<DeleteCommand>
|
||||||
|
<summary>
|
||||||
|
Gets or sets a SQL statement or stored procedure used to delete records from the data set.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
A <see cref="MySqlCommand"/> used during <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/> to delete records in the
|
||||||
|
database that correspond to deleted rows in the <see cref="DataSet"/>.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
During <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/>, if this property is not set and primary key information
|
||||||
|
is present in the <see cref="DataSet"/>, the <B>DeleteCommand</B> can be generated
|
||||||
|
automatically if you set the <see cref="SelectCommand"/> property and use the
|
||||||
|
<see cref="MySqlCommandBuilder"/>. Then, any additional commands that you do not set are
|
||||||
|
generated by the <B>MySqlCommandBuilder</B>. This generation logic requires key column
|
||||||
|
information to be present in the <B>DataSet</B>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When <B>DeleteCommand</B> is assigned to a previously created <see cref="MySqlCommand"/>,
|
||||||
|
the <B>MySqlCommand</B> is not cloned. The <B>DeleteCommand</B> maintains a reference
|
||||||
|
to the previously created <B>MySqlCommand</B> object.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets the
|
||||||
|
<see cref="SelectCommand"/> and <B>DeleteCommand</B> properties. It assumes you have already
|
||||||
|
created a <see cref="MySqlConnection"/> object.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter
|
||||||
|
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter()
|
||||||
|
Dim cmd As MySqlCommand
|
||||||
|
Dim parm As MySqlParameter
|
||||||
|
|
||||||
|
' Create the SelectCommand.
|
||||||
|
cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15)
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15)
|
||||||
|
|
||||||
|
da.SelectCommand = cmd
|
||||||
|
|
||||||
|
' Create the DeleteCommand.
|
||||||
|
cmd = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn)
|
||||||
|
|
||||||
|
parm = cmd.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id")
|
||||||
|
parm.SourceVersion = DataRowVersion.Original
|
||||||
|
|
||||||
|
da.DeleteCommand = cmd
|
||||||
|
|
||||||
|
Return da
|
||||||
|
End Function
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn)
|
||||||
|
{
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter();
|
||||||
|
MySqlCommand cmd;
|
||||||
|
MySqlParameter parm;
|
||||||
|
|
||||||
|
// Create the SelectCommand.
|
||||||
|
cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn);
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15);
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15);
|
||||||
|
|
||||||
|
da.SelectCommand = cmd;
|
||||||
|
|
||||||
|
// Create the DeleteCommand.
|
||||||
|
cmd = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn);
|
||||||
|
|
||||||
|
parm = cmd.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id");
|
||||||
|
parm.SourceVersion = DataRowVersion.Original;
|
||||||
|
|
||||||
|
da.DeleteCommand = cmd;
|
||||||
|
|
||||||
|
return da;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</DeleteCommand>
|
||||||
|
|
||||||
|
<InsertCommand>
|
||||||
|
<summary>
|
||||||
|
Gets or sets a SQL statement or stored procedure used to insert records into the data set.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
A <see cref="MySqlCommand"/> used during <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/> to insert records into the
|
||||||
|
database that correspond to new rows in the <see cref="DataSet"/>.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
During <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/>, if this property is not set and primary key information
|
||||||
|
is present in the <see cref="DataSet"/>, the <B>InsertCommand</B> can be generated
|
||||||
|
automatically if you set the <see cref="SelectCommand"/> property and use the
|
||||||
|
<see cref="MySqlCommandBuilder"/>. Then, any additional commands that you do not set are
|
||||||
|
generated by the <B>MySqlCommandBuilder</B>. This generation logic requires key column
|
||||||
|
information to be present in the <B>DataSet</B>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When <B>InsertCommand</B> is assigned to a previously created <see cref="MySqlCommand"/>,
|
||||||
|
the <B>MySqlCommand</B> is not cloned. The <B>InsertCommand</B> maintains a reference
|
||||||
|
to the previously created <B>MySqlCommand</B> object.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
If execution of this command returns rows, these rows may be added to the <B>DataSet</B>
|
||||||
|
depending on how you set the <see cref="MySqlCommand.UpdatedRowSource"/> property of the <B>MySqlCommand</B> object.
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets the
|
||||||
|
<see cref="SelectCommand"/> and <B>InsertCommand</B> properties. It assumes you have already
|
||||||
|
created a <see cref="MySqlConnection"/> object.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter
|
||||||
|
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter()
|
||||||
|
Dim cmd As MySqlCommand
|
||||||
|
Dim parm As MySqlParameter
|
||||||
|
|
||||||
|
' Create the SelectCommand.
|
||||||
|
cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15)
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15)
|
||||||
|
|
||||||
|
da.SelectCommand = cmd
|
||||||
|
|
||||||
|
' Create the InsertCommand.
|
||||||
|
cmd = New MySqlCommand("INSERT INTO mytable (id,name) VALUES (@id, @name)", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add( "@id", MySqlDbType.VarChar, 15, "id" )
|
||||||
|
cmd.Parameters.Add( "@name", MySqlDbType.VarChar, 15, "name" )
|
||||||
|
da.InsertCommand = cmd
|
||||||
|
|
||||||
|
Return da
|
||||||
|
End Function
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn)
|
||||||
|
{
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter();
|
||||||
|
MySqlCommand cmd;
|
||||||
|
MySqlParameter parm;
|
||||||
|
|
||||||
|
// Create the SelectCommand.
|
||||||
|
cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn);
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15);
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15);
|
||||||
|
|
||||||
|
da.SelectCommand = cmd;
|
||||||
|
|
||||||
|
// Create the InsertCommand.
|
||||||
|
cmd = new MySqlCommand("INSERT INTO mytable (id,name) VALUES (@id,@name)", conn);
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15, "id" );
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15, "name" );
|
||||||
|
|
||||||
|
da.InsertCommand = cmd;
|
||||||
|
|
||||||
|
return da;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</InsertCommand>
|
||||||
|
|
||||||
|
<UpdateCommand>
|
||||||
|
<summary>
|
||||||
|
Gets or sets a SQL statement or stored procedure used to updated records in the data source.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
A <see cref="MySqlCommand"/> used during <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/> to update records in the
|
||||||
|
database with data from the <see cref="DataSet"/>.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
During <see cref="System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)"/>, if this property is not set and primary key information
|
||||||
|
is present in the <see cref="DataSet"/>, the <B>UpdateCommand</B> can be generated
|
||||||
|
automatically if you set the <see cref="SelectCommand"/> property and use the
|
||||||
|
<see cref="MySqlCommandBuilder"/>. Then, any additional commands that you do not set are
|
||||||
|
generated by the <B>MySqlCommandBuilder</B>. This generation logic requires key column
|
||||||
|
information to be present in the <B>DataSet</B>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When <B>UpdateCommand</B> is assigned to a previously created <see cref="MySqlCommand"/>,
|
||||||
|
the <B>MySqlCommand</B> is not cloned. The <B>UpdateCommand</B> maintains a reference
|
||||||
|
to the previously created <B>MySqlCommand</B> object.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
If execution of this command returns rows, these rows may be merged with the DataSet
|
||||||
|
depending on how you set the <see cref="MySqlCommand.UpdatedRowSource"/> property of the <B>MySqlCommand</B> object.
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets the
|
||||||
|
<see cref="SelectCommand"/> and <B>UpdateCommand</B> properties. It assumes you have already
|
||||||
|
created a <see cref="MySqlConnection"/> object.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter
|
||||||
|
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter()
|
||||||
|
Dim cmd As MySqlCommand
|
||||||
|
Dim parm As MySqlParameter
|
||||||
|
|
||||||
|
' Create the SelectCommand.
|
||||||
|
cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15)
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15)
|
||||||
|
|
||||||
|
da.SelectCommand = cmd
|
||||||
|
|
||||||
|
' Create the UpdateCommand.
|
||||||
|
cmd = New MySqlCommand("UPDATE mytable SET id=@id, name=@name WHERE id=@oldId", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add( "@id", MySqlDbType.VarChar, 15, "id" )
|
||||||
|
cmd.Parameters.Add( "@name", MySqlDbType.VarChar, 15, "name" )
|
||||||
|
|
||||||
|
parm = cmd.Parameters.Add("@oldId", MySqlDbType.VarChar, 15, "id")
|
||||||
|
parm.SourceVersion = DataRowVersion.Original
|
||||||
|
|
||||||
|
da.UpdateCommand = cmd
|
||||||
|
|
||||||
|
Return da
|
||||||
|
End Function
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn)
|
||||||
|
{
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter();
|
||||||
|
MySqlCommand cmd;
|
||||||
|
MySqlParameter parm;
|
||||||
|
|
||||||
|
// Create the SelectCommand.
|
||||||
|
cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn);
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15);
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15);
|
||||||
|
|
||||||
|
da.SelectCommand = cmd;
|
||||||
|
|
||||||
|
// Create the UpdateCommand.
|
||||||
|
cmd = new MySqlCommand("UPDATE mytable SET id=@id, name=@name WHERE id=@oldId", conn);
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15, "id" );
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15, "name" );
|
||||||
|
|
||||||
|
parm = cmd.Parameters.Add( "@oldId", MySqlDbType.VarChar, 15, "id" );
|
||||||
|
parm.SourceVersion = DataRowVersion.Original;
|
||||||
|
|
||||||
|
da.UpdateCommand = cmd;
|
||||||
|
|
||||||
|
return da;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</UpdateCommand>
|
||||||
|
|
||||||
|
<SelectCommand>
|
||||||
|
<summary>
|
||||||
|
Gets or sets a SQL statement or stored procedure used to select records in the data source.
|
||||||
|
</summary>
|
||||||
|
<value>
|
||||||
|
A <see cref="MySqlCommand"/> used during <see cref="System.Data.Common.DbDataAdapter.Fill(DataSet)"/> to select records from the
|
||||||
|
database for placement in the <see cref="DataSet"/>.
|
||||||
|
</value>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
When <B>SelectCommand</B> is assigned to a previously created <see cref="MySqlCommand"/>,
|
||||||
|
the <B>MySqlCommand</B> is not cloned. The <B>SelectCommand</B> maintains a reference to the
|
||||||
|
previously created <B>MySqlCommand</B> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If the <B>SelectCommand</B> does not return any rows, no tables are added to the
|
||||||
|
<see cref="DataSet"/>, and no exception is raised.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlDataAdapter"/> and sets the
|
||||||
|
<see cref="SelectCommand"/> and <B>InsertCommand</B> properties. It assumes you have already
|
||||||
|
created a <see cref="MySqlConnection"/> object.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter
|
||||||
|
|
||||||
|
Dim da As MySqlDataAdapter = New MySqlDataAdapter()
|
||||||
|
Dim cmd As MySqlCommand
|
||||||
|
Dim parm As MySqlParameter
|
||||||
|
|
||||||
|
' Create the SelectCommand.
|
||||||
|
cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15)
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15)
|
||||||
|
|
||||||
|
da.SelectCommand = cmd
|
||||||
|
|
||||||
|
' Create the InsertCommand.
|
||||||
|
cmd = New MySqlCommand("INSERT INTO mytable (id,name) VALUES (@id, @name)", conn)
|
||||||
|
|
||||||
|
cmd.Parameters.Add( "@id", MySqlDbType.VarChar, 15, "id" )
|
||||||
|
cmd.Parameters.Add( "@name", MySqlDbType.VarChar, 15, "name" )
|
||||||
|
da.InsertCommand = cmd
|
||||||
|
|
||||||
|
Return da
|
||||||
|
End Function
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn)
|
||||||
|
{
|
||||||
|
MySqlDataAdapter da = new MySqlDataAdapter();
|
||||||
|
MySqlCommand cmd;
|
||||||
|
MySqlParameter parm;
|
||||||
|
|
||||||
|
// Create the SelectCommand.
|
||||||
|
cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn);
|
||||||
|
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15);
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15);
|
||||||
|
|
||||||
|
da.SelectCommand = cmd;
|
||||||
|
|
||||||
|
// Create the InsertCommand.
|
||||||
|
cmd = new MySqlCommand("INSERT INTO mytable (id,name) VALUES (@id,@name)", conn);
|
||||||
|
cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15, "id" );
|
||||||
|
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15, "name" );
|
||||||
|
|
||||||
|
da.InsertCommand = cmd;
|
||||||
|
|
||||||
|
return da;
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</SelectCommand>
|
||||||
|
|
||||||
|
</docs>
|
452
Utilities/Utilities/docs/MySqlDataReader.xml
Normal file
452
Utilities/Utilities/docs/MySqlDataReader.xml
Normal file
@ -0,0 +1,452 @@
|
|||||||
|
<docs>
|
||||||
|
<ClassSummary>
|
||||||
|
<summary>
|
||||||
|
Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
To create a <B>MySQLDataReader</B>, you must call the <see cref="MySqlCommand.ExecuteReader()"/>
|
||||||
|
method of the <see cref="MySqlCommand"/> object, rather than directly using a constructor.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
While the <B>MySqlDataReader</B> is in use, the associated <see cref="MySqlConnection"/>
|
||||||
|
is busy serving the <B>MySqlDataReader</B>, and no other operations can be performed
|
||||||
|
on the <B>MySqlConnection</B> other than closing it. This is the case until the
|
||||||
|
<see cref="MySqlDataReader.Close"/> method of the <B>MySqlDataReader</B> is called.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
<see cref="MySqlDataReader.IsClosed"/> and <see cref="MySqlDataReader.RecordsAffected"/>
|
||||||
|
are the only properties that you can call after the <B>MySqlDataReader</B> is
|
||||||
|
closed. Though the <B>RecordsAffected</B> property may be accessed at any time
|
||||||
|
while the <B>MySqlDataReader</B> exists, always call <B>Close</B> before returning
|
||||||
|
the value of <B>RecordsAffected</B> to ensure an accurate return value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
For optimal performance, <B>MySqlDataReader</B> avoids creating
|
||||||
|
unnecessary objects or making unnecessary copies of data. As a result, multiple calls
|
||||||
|
to methods such as <see cref="MySqlDataReader.GetValue"/> return a reference to the
|
||||||
|
same object. Use caution if you are modifying the underlying value of the objects
|
||||||
|
returned by methods such as <B>GetValue</B>.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlConnection"/>,
|
||||||
|
a <see cref="MySqlCommand"/>, and a <B>MySqlDataReader</B>. The example reads through
|
||||||
|
the data, writing it out to the console. Finally, the example closes the <B>MySqlDataReader</B>, then the
|
||||||
|
<B>MySqlConnection</B>.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub ReadMyData(myConnString As String)
|
||||||
|
Dim mySelectQuery As String = "SELECT OrderID, CustomerID FROM Orders"
|
||||||
|
Dim myConnection As New MySqlConnection(myConnString)
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
|
||||||
|
myConnection.Open()
|
||||||
|
Dim myReader As MySqlDataReader
|
||||||
|
myReader = myCommand.ExecuteReader()
|
||||||
|
' Always call Read before accessing data.
|
||||||
|
While myReader.Read()
|
||||||
|
Console.WriteLine((myReader.GetInt32(0) & ", " & myReader.GetString(1)))
|
||||||
|
End While
|
||||||
|
' always call Close when done reading.
|
||||||
|
myReader.Close()
|
||||||
|
' Close the connection when done with it.
|
||||||
|
myConnection.Close()
|
||||||
|
End Sub 'ReadMyData
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void ReadMyData(string myConnString) {
|
||||||
|
string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders";
|
||||||
|
MySqlConnection myConnection = new MySqlConnection(myConnString);
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery,myConnection);
|
||||||
|
myConnection.Open();
|
||||||
|
MySqlDataReader myReader;
|
||||||
|
myReader = myCommand.ExecuteReader();
|
||||||
|
// Always call Read before accessing data.
|
||||||
|
while (myReader.Read()) {
|
||||||
|
Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
|
||||||
|
}
|
||||||
|
// always call Close when done reading.
|
||||||
|
myReader.Close();
|
||||||
|
// Close the connection when done with it.
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</ClassSummary>
|
||||||
|
|
||||||
|
<GetBytes>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
<B>GetBytes</B> returns the number of available bytes in the field. In most
|
||||||
|
cases this is the exact length of the field. However, the number returned may be
|
||||||
|
less than the true length of the field if <B>GetBytes</B> has already been used
|
||||||
|
to obtain bytes from the field. This may be the case, for example, if the
|
||||||
|
<see cref="MySqlDataReader"/> is reading a large data structure into a buffer.
|
||||||
|
For more information, see the <B>SequentialAccess</B> setting for
|
||||||
|
<see cref="MySqlCommand.CommandBehavior"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If you pass a buffer that is a null reference (<B>Nothing</B> in Visual
|
||||||
|
Basic), <B>GetBytes</B> returns the length of the field in bytes.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore the data retrieved must already be a
|
||||||
|
byte array.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
</GetBytes>
|
||||||
|
|
||||||
|
<GetTimeSpan>
|
||||||
|
<overloads/>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="TimeSpan"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Time</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The zero-based column ordinal or column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetTimeSpan>
|
||||||
|
|
||||||
|
<GetDateTime>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="DateTime"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>DateTime</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
MySql allows date columns to contain the value '0000-00-00' and datetime
|
||||||
|
columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
|
||||||
|
or represent these values. To read a datetime value from a column that might
|
||||||
|
contain zero values, use <see cref="GetMySqlDateTime(int)"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The behavior of reading a zero datetime column using this method is defined by the
|
||||||
|
<i>ZeroDateTimeBehavior</i> connection string option. For more information on this option,
|
||||||
|
please refer to <see cref="MySqlConnection.ConnectionString"/>.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetDateTime>
|
||||||
|
|
||||||
|
<GetDateTimeS>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="DateTime"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>DateTime</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
MySql allows date columns to contain the value '0000-00-00' and datetime
|
||||||
|
columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
|
||||||
|
or represent these values. To read a datetime value from a column that might
|
||||||
|
contain zero values, use <see cref="GetMySqlDateTime(int)"/>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The behavior of reading a zero datetime column using this method is defined by the
|
||||||
|
<i>ZeroDateTimeBehavior</i> connection string option. For more information on this option,
|
||||||
|
please refer to <see cref="MySqlConnection.ConnectionString"/>.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetDateTimeS>
|
||||||
|
|
||||||
|
<GetMySqlDateTime>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="MySql.Data.Types.MySqlDateTime"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>DateTime</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The zero-based column ordinal or column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetMySqlDateTime>
|
||||||
|
|
||||||
|
<GetString>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="String"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>String</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetString>
|
||||||
|
|
||||||
|
<GetStringS>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="String"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>String</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetStringS>
|
||||||
|
|
||||||
|
<GetDecimal>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="Decimal"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Decimal</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetDecimal>
|
||||||
|
|
||||||
|
<GetDecimalS>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a <see cref="Decimal"/> object.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Decimal</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetDecimalS>
|
||||||
|
|
||||||
|
<GetDouble>
|
||||||
|
<summary>Gets the value of the specified column as a double-precision floating point number.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Double</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetDouble>
|
||||||
|
|
||||||
|
<GetDoubleS>
|
||||||
|
<summary>Gets the value of the specified column as a double-precision floating point number.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Double</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetDoubleS>
|
||||||
|
|
||||||
|
<GetFloat>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a single-precision floating point number.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Float</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetFloat>
|
||||||
|
|
||||||
|
<GetFloatS>
|
||||||
|
<summary>
|
||||||
|
Gets the value of the specified column as a single-precision floating point number.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>Float</b> object.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetFloatS>
|
||||||
|
|
||||||
|
<GetGiud>
|
||||||
|
<summary>Gets the value of the specified column as a globally-unique identifier (GUID).</summary>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetGiud>
|
||||||
|
|
||||||
|
<GetGiudS>
|
||||||
|
<summary>Gets the value of the specified column as a globally-unique identifier (GUID).</summary>
|
||||||
|
<param name="column">The column name</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetGiudS>
|
||||||
|
|
||||||
|
<GetInt16>
|
||||||
|
<summary>Gets the value of the specified column as a 16-bit signed integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>16 bit integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetInt16>
|
||||||
|
|
||||||
|
<GetInt16S>
|
||||||
|
<summary>Gets the value of the specified column as a 16-bit signed integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; threfore, the data retrieved must already be a <b>16 bit integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetInt16S>
|
||||||
|
|
||||||
|
<GetInt32>
|
||||||
|
<summary>Gets the value of the specified column as a 32-bit signed integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>32 bit integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetInt32>
|
||||||
|
|
||||||
|
<GetInt32S>
|
||||||
|
<summary>Gets the value of the specified column as a 32-bit signed integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>32 bit integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetInt32S>
|
||||||
|
|
||||||
|
<GetInt64>
|
||||||
|
<summary>Gets the value of the specified column as a 64-bit signed integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>64 bit integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="i">The zero-based column ordinal.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetInt64>
|
||||||
|
|
||||||
|
<GetInt64S>
|
||||||
|
<summary>Gets the value of the specified column as a 64-bit signed integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>64 bit integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetInt64S>
|
||||||
|
|
||||||
|
<GetUInt16>
|
||||||
|
<summary>Gets the value of the specified column as a 16-bit unsigned integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>16 bit unsigned integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The zero-based column ordinal or column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetUInt16>
|
||||||
|
|
||||||
|
<GetUInt32>
|
||||||
|
<summary>Gets the value of the specified column as a 32-bit unsigned integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>32 bit unsigned integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The zero-based column ordinal or column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetUInt32>
|
||||||
|
|
||||||
|
<GetUInt64>
|
||||||
|
<summary>Gets the value of the specified column as a 64-bit unsigned integer.</summary>
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
No conversions are performed; therefore, the data retrieved must already be a <b>64 bit unsigned integer</b> value.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Call IsDBNull to check for null values before calling this method.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
<param name="column">The zero-based column ordinal or column name.</param>
|
||||||
|
<returns>The value of the specified column.</returns>
|
||||||
|
</GetUInt64>
|
||||||
|
|
||||||
|
</docs>
|
53
Utilities/Utilities/docs/MySqlException.xml
Normal file
53
Utilities/Utilities/docs/MySqlException.xml
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<MyDocs>
|
||||||
|
<MyMembers name="Class">
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
This class is created whenever the MySql Data Provider encounters an error generated from the server.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Any open connections are not automatically closed when an exception is thrown. If
|
||||||
|
the client application determines that the exception is fatal, it should close any open
|
||||||
|
<see cref="MySqlDataReader"/> objects or <see cref="MySqlConnection"/> objects.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example generates a <B>MySqlException</B> due to a missing server,
|
||||||
|
and then displays the exception.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub ShowException()
|
||||||
|
Dim mySelectQuery As String = "SELECT column1 FROM table1"
|
||||||
|
Dim myConnection As New MySqlConnection ("Data Source=localhost;Database=Sample;")
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
|
||||||
|
|
||||||
|
Try
|
||||||
|
myCommand.Connection.Open()
|
||||||
|
Catch e As MySqlException
|
||||||
|
MessageBox.Show( e.Message )
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void ShowException()
|
||||||
|
{
|
||||||
|
string mySelectQuery = "SELECT column1 FROM table1";
|
||||||
|
MySqlConnection myConnection =
|
||||||
|
new MySqlConnection("Data Source=localhost;Database=Sample;");
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery,myConnection);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myCommand.Connection.Open();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
MessageBox.Show( e.Message );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
|
||||||
|
</MyMembers>
|
||||||
|
</MyDocs>
|
53
Utilities/Utilities/docs/MySqlHelper.xml
Normal file
53
Utilities/Utilities/docs/MySqlHelper.xml
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<MyDocs>
|
||||||
|
<MyMembers name="Class">
|
||||||
|
<remarks>
|
||||||
|
<para>
|
||||||
|
This class is created whenever the MySql Data Provider encounters an error generated from the server.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Any open connections are not automatically closed when an exception is thrown. If
|
||||||
|
the client application determines that the exception is fatal, it should close any open
|
||||||
|
<see cref="MySqlDataReader"/> objects or <see cref="MySqlConnection"/> objects.
|
||||||
|
</para>
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example generates a <B>MySqlException</B> due to a missing server,
|
||||||
|
and then displays the exception.
|
||||||
|
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub ShowException()
|
||||||
|
Dim mySelectQuery As String = "SELECT column1 FROM table1"
|
||||||
|
Dim myConnection As New MySqlConnection ("Data Source=localhost;Database=Sample;")
|
||||||
|
Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
|
||||||
|
|
||||||
|
Try
|
||||||
|
myCommand.Connection.Open()
|
||||||
|
Catch e As MySqlException
|
||||||
|
MessageBox.Show( e.Message )
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void ShowException()
|
||||||
|
{
|
||||||
|
string mySelectQuery = "SELECT column1 FROM table1";
|
||||||
|
MySqlConnection myConnection =
|
||||||
|
new MySqlConnection("Data Source=localhost;Database=Sample;");
|
||||||
|
MySqlCommand myCommand = new MySqlCommand(mySelectQuery,myConnection);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myCommand.Connection.Open();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
MessageBox.Show( e.Message );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
|
||||||
|
</MyMembers>
|
||||||
|
</MyDocs>
|
45
Utilities/Utilities/docs/MySqlParameter.xml
Normal file
45
Utilities/Utilities/docs/MySqlParameter.xml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<MyDocs>
|
||||||
|
<MyMembers name="Class">
|
||||||
|
<remarks>
|
||||||
|
Parameter names are not case sensitive.
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example creates multiple instances of <B>MySqlParameter</B> through the
|
||||||
|
<see cref="MySqlParameterCollection"/> collection within the <see cref="MySqlDataAdapter"/>.
|
||||||
|
These parameters are used to select data from the data source and place the data
|
||||||
|
in the <see cref="DataSet"/>. This example assumes that a <B>DataSet</B> and a
|
||||||
|
<B>MySqlDataAdapter</B> have already been created with the appropriate schema, commands,
|
||||||
|
and connection.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub AddSqlParameters()
|
||||||
|
' ...
|
||||||
|
' create myDataSet and myDataAdapter
|
||||||
|
' ...
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", MySqlDbType.VarChar, 80).Value = "toasters"
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", MySqlDbType.Long).Value = 239
|
||||||
|
|
||||||
|
myDataAdapter.Fill(myDataSet)
|
||||||
|
End Sub 'AddSqlParameters
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void AddSqlParameters()
|
||||||
|
{
|
||||||
|
// ...
|
||||||
|
// create myDataSet and myDataAdapter
|
||||||
|
// ...
|
||||||
|
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", MySqlDbType.VarChar, 80).Value = "toasters";
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", MySqlDbType.Long).Value = 239;
|
||||||
|
myDataAdapter.Fill(myDataSet);
|
||||||
|
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
|
||||||
|
</MyMembers>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</MyDocs>
|
45
Utilities/Utilities/docs/MySqlParameterCollection.xml
Normal file
45
Utilities/Utilities/docs/MySqlParameterCollection.xml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<MyDocs>
|
||||||
|
<MyMembers name="Class">
|
||||||
|
<remarks>
|
||||||
|
The number of the parameters in the collection must be equal to the number of
|
||||||
|
parameter placeholders within the command text, or an exception will be generated.
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example creates multiple instances of <see cref="MySqlParameter"/>
|
||||||
|
through the <B>MySqlParameterCollection</B> collection within the <see cref="MySqlDataAdapter"/>.
|
||||||
|
These parameters are used to select data within the data source and place the data in
|
||||||
|
the <see cref="System.Data.DataSet"/>. This code assumes that a <B>DataSet</B> and a <B>MySqlDataAdapter</B>
|
||||||
|
have already been created with the appropriate schema, commands, and connection.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub AddParameters()
|
||||||
|
' ...
|
||||||
|
' create myDataSet and myDataAdapter
|
||||||
|
' ...
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", MySqlDbType.VarChar, 80).Value = "toasters"
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", MySqlDbType.Long).Value = 239
|
||||||
|
|
||||||
|
myDataAdapter.Fill(myDataSet)
|
||||||
|
End Sub 'AddSqlParameters
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void AddSqlParameters()
|
||||||
|
{
|
||||||
|
// ...
|
||||||
|
// create myDataSet and myDataAdapter
|
||||||
|
// ...
|
||||||
|
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", MySqlDbType.VarChar, 80).Value = "toasters";
|
||||||
|
myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", MySqlDbType.Long).Value = 239;
|
||||||
|
myDataAdapter.Fill(myDataSet);
|
||||||
|
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
|
||||||
|
</MyMembers>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</MyDocs>
|
329
Utilities/Utilities/docs/MySqlTransaction.xml
Normal file
329
Utilities/Utilities/docs/MySqlTransaction.xml
Normal file
@ -0,0 +1,329 @@
|
|||||||
|
<docs>
|
||||||
|
<Class>
|
||||||
|
<summary>
|
||||||
|
Represents a SQL transaction to be made in a MySQL database. This class cannot be inherited.
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
<remarks>
|
||||||
|
The application creates a <B>MySqlTransaction</B> object by calling <see cref="MySqlConnection.BeginTransaction()"/>
|
||||||
|
on the <see cref="MySqlConnection"/> object. All subsequent operations associated with the
|
||||||
|
transaction (for example, committing or aborting the transaction), are performed on the
|
||||||
|
<B>MySqlTransaction</B> object.
|
||||||
|
</remarks>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlConnection"/> and a <B>MySqlTransaction</B>.
|
||||||
|
It also demonstrates how to use the <see cref="MySqlConnection.BeginTransaction()"/>,
|
||||||
|
<see cref="MySqlTransaction.Commit"/>, and <see cref="MySqlTransaction.Rollback"/> methods.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub RunTransaction(myConnString As String)
|
||||||
|
Dim myConnection As New MySqlConnection(myConnString)
|
||||||
|
myConnection.Open()
|
||||||
|
|
||||||
|
Dim myCommand As MySqlCommand = myConnection.CreateCommand()
|
||||||
|
Dim myTrans As MySqlTransaction
|
||||||
|
|
||||||
|
' Start a local transaction
|
||||||
|
myTrans = myConnection.BeginTransaction()
|
||||||
|
' Must assign both transaction object and connection
|
||||||
|
' to Command object for a pending local transaction
|
||||||
|
myCommand.Connection = myConnection
|
||||||
|
myCommand.Transaction = myTrans
|
||||||
|
|
||||||
|
Try
|
||||||
|
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myTrans.Commit()
|
||||||
|
Console.WriteLine("Both records are written to database.")
|
||||||
|
Catch e As Exception
|
||||||
|
Try
|
||||||
|
myTrans.Rollback()
|
||||||
|
Catch ex As MySqlException
|
||||||
|
If Not myTrans.Connection Is Nothing Then
|
||||||
|
Console.WriteLine("An exception of type " & ex.GetType().ToString() & _
|
||||||
|
" was encountered while attempting to roll back the transaction.")
|
||||||
|
End If
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Console.WriteLine("An exception of type " & e.GetType().ToString() & _
|
||||||
|
"was encountered while inserting the data.")
|
||||||
|
Console.WriteLine("Neither record was written to database.")
|
||||||
|
Finally
|
||||||
|
myConnection.Close()
|
||||||
|
End Try
|
||||||
|
End Sub 'RunTransaction
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void RunTransaction(string myConnString)
|
||||||
|
{
|
||||||
|
MySqlConnection myConnection = new MySqlConnection(myConnString);
|
||||||
|
myConnection.Open();
|
||||||
|
|
||||||
|
MySqlCommand myCommand = myConnection.CreateCommand();
|
||||||
|
MySqlTransaction myTrans;
|
||||||
|
|
||||||
|
// Start a local transaction
|
||||||
|
myTrans = myConnection.BeginTransaction();
|
||||||
|
// Must assign both transaction object and connection
|
||||||
|
// to Command object for a pending local transaction
|
||||||
|
myCommand.Connection = myConnection;
|
||||||
|
myCommand.Transaction = myTrans;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myTrans.Commit();
|
||||||
|
Console.WriteLine("Both records are written to database.");
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myTrans.Rollback();
|
||||||
|
}
|
||||||
|
catch (MySqlException ex)
|
||||||
|
{
|
||||||
|
if (myTrans.Connection != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("An exception of type " + ex.GetType() +
|
||||||
|
" was encountered while attempting to roll back the transaction.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine("An exception of type " + e.GetType() +
|
||||||
|
" was encountered while inserting the data.");
|
||||||
|
Console.WriteLine("Neither record was written to database.");
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
|
||||||
|
</Class>
|
||||||
|
|
||||||
|
<Rollback>
|
||||||
|
<summary>
|
||||||
|
Rolls back a transaction from a pending state.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
The Rollback method is equivalent to the MySQL statement ROLLBACK.
|
||||||
|
The transaction can only be rolled back from a pending state
|
||||||
|
(after BeginTransaction has been called, but before Commit is
|
||||||
|
called).
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlConnection"/> and a
|
||||||
|
<see cref="MySqlTransaction"/>. It also demonstrates how to use the
|
||||||
|
<see cref="MySqlConnection.BeginTransaction()"/>, <see cref="Commit"/>, and <B>Rollback</B>
|
||||||
|
methods.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub RunSqlTransaction(myConnString As String)
|
||||||
|
Dim myConnection As New MySqlConnection(myConnString)
|
||||||
|
myConnection.Open()
|
||||||
|
|
||||||
|
Dim myCommand As MySqlCommand = myConnection.CreateCommand()
|
||||||
|
Dim myTrans As MySqlTransaction
|
||||||
|
|
||||||
|
' Start a local transaction
|
||||||
|
myTrans = myConnection.BeginTransaction()
|
||||||
|
|
||||||
|
' Must assign both transaction object and connection
|
||||||
|
' to Command object for a pending local transaction
|
||||||
|
myCommand.Connection = myConnection
|
||||||
|
myCommand.Transaction = myTrans
|
||||||
|
|
||||||
|
Try
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (100, 'Description')"
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (101, 'Description')"
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myTrans.Commit()
|
||||||
|
Console.WriteLine("Success.")
|
||||||
|
Catch e As Exception
|
||||||
|
Try
|
||||||
|
myTrans.Rollback()
|
||||||
|
Catch ex As MySqlException
|
||||||
|
If Not myTrans.Connection Is Nothing Then
|
||||||
|
Console.WriteLine("An exception of type " & ex.GetType().ToString() & _
|
||||||
|
" was encountered while attempting to roll back the transaction.")
|
||||||
|
End If
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Console.WriteLine("An exception of type " & e.GetType().ToString() & _
|
||||||
|
"was encountered while inserting the data.")
|
||||||
|
Console.WriteLine("Neither record was written to database.")
|
||||||
|
Finally
|
||||||
|
myConnection.Close()
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void RunSqlTransaction(string myConnString)
|
||||||
|
{
|
||||||
|
MySqlConnection myConnection = new MySqlConnection(myConnString);
|
||||||
|
myConnection.Open();
|
||||||
|
|
||||||
|
MySqlCommand myCommand = myConnection.CreateCommand();
|
||||||
|
MySqlTransaction myTrans;
|
||||||
|
|
||||||
|
// Start a local transaction
|
||||||
|
myTrans = myConnection.BeginTransaction();
|
||||||
|
// Must assign both transaction object and connection
|
||||||
|
// to Command object for a pending local transaction
|
||||||
|
myCommand.Connection = myConnection;
|
||||||
|
myCommand.Transaction = myTrans;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (100, 'Description')";
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (101, 'Description')";
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myTrans.Commit();
|
||||||
|
Console.WriteLine("Both records are written to database.");
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myTrans.Rollback();
|
||||||
|
}
|
||||||
|
catch (MySqlException ex)
|
||||||
|
{
|
||||||
|
if (myTrans.Connection != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("An exception of type " + ex.GetType() +
|
||||||
|
" was encountered while attempting to roll back the transaction.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine("An exception of type " + e.GetType() +
|
||||||
|
" was encountered while inserting the data.");
|
||||||
|
Console.WriteLine("Neither record was written to database.");
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Rollback>
|
||||||
|
|
||||||
|
<Commit>
|
||||||
|
<summary>
|
||||||
|
Commits the database transaction.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
The <b>Commit</b> method is equivalent to the MySQL SQL statement
|
||||||
|
COMMIT.
|
||||||
|
</remarks>
|
||||||
|
<example>
|
||||||
|
The following example creates a <see cref="MySqlConnection"/> and a
|
||||||
|
<see cref="MySqlTransaction"/>. It also demonstrates how to use the
|
||||||
|
<see cref="MySqlConnection.BeginTransaction()"/>, <see cref="Commit"/>, and <B>Rollback</B>
|
||||||
|
methods.
|
||||||
|
<code lang="vbnet">
|
||||||
|
Public Sub RunSqlTransaction(myConnString As String)
|
||||||
|
Dim myConnection As New MySqlConnection(myConnString)
|
||||||
|
myConnection.Open()
|
||||||
|
|
||||||
|
Dim myCommand As MySqlCommand = myConnection.CreateCommand()
|
||||||
|
Dim myTrans As MySqlTransaction
|
||||||
|
|
||||||
|
' Start a local transaction
|
||||||
|
myTrans = myConnection.BeginTransaction()
|
||||||
|
|
||||||
|
' Must assign both transaction object and connection
|
||||||
|
' to Command object for a pending local transaction
|
||||||
|
myCommand.Connection = myConnection
|
||||||
|
myCommand.Transaction = myTrans
|
||||||
|
|
||||||
|
Try
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (100, 'Description')"
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (101, 'Description')"
|
||||||
|
myCommand.ExecuteNonQuery()
|
||||||
|
myTrans.Commit()
|
||||||
|
Console.WriteLine("Success.")
|
||||||
|
Catch e As Exception
|
||||||
|
Try
|
||||||
|
myTrans.Rollback()
|
||||||
|
Catch ex As MySqlException
|
||||||
|
If Not myTrans.Connection Is Nothing Then
|
||||||
|
Console.WriteLine("An exception of type " & ex.GetType().ToString() & _
|
||||||
|
" was encountered while attempting to roll back the transaction.")
|
||||||
|
End If
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Console.WriteLine("An exception of type " & e.GetType().ToString() & _
|
||||||
|
"was encountered while inserting the data.")
|
||||||
|
Console.WriteLine("Neither record was written to database.")
|
||||||
|
Finally
|
||||||
|
myConnection.Close()
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
</code>
|
||||||
|
<code lang="C#">
|
||||||
|
public void RunSqlTransaction(string myConnString)
|
||||||
|
{
|
||||||
|
MySqlConnection myConnection = new MySqlConnection(myConnString);
|
||||||
|
myConnection.Open();
|
||||||
|
|
||||||
|
MySqlCommand myCommand = myConnection.CreateCommand();
|
||||||
|
MySqlTransaction myTrans;
|
||||||
|
|
||||||
|
// Start a local transaction
|
||||||
|
myTrans = myConnection.BeginTransaction();
|
||||||
|
// Must assign both transaction object and connection
|
||||||
|
// to Command object for a pending local transaction
|
||||||
|
myCommand.Connection = myConnection;
|
||||||
|
myCommand.Transaction = myTrans;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (100, 'Description')";
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myCommand.CommandText = "Insert into mytable (id, desc) VALUES (101, 'Description')";
|
||||||
|
myCommand.ExecuteNonQuery();
|
||||||
|
myTrans.Commit();
|
||||||
|
Console.WriteLine("Both records are written to database.");
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
myTrans.Rollback();
|
||||||
|
}
|
||||||
|
catch (MySqlException ex)
|
||||||
|
{
|
||||||
|
if (myTrans.Connection != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("An exception of type " + ex.GetType() +
|
||||||
|
" was encountered while attempting to roll back the transaction.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine("An exception of type " + e.GetType() +
|
||||||
|
" was encountered while inserting the data.");
|
||||||
|
Console.WriteLine("Neither record was written to database.");
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
myConnection.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</code>
|
||||||
|
</example>
|
||||||
|
</Commit>
|
||||||
|
|
||||||
|
</docs>
|
@ -10,8 +10,8 @@
|
|||||||
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net462" />
|
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net462" />
|
||||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net462" />
|
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net462" />
|
||||||
<package id="Mime-Detective" version="0.0.5" targetFramework="net462" />
|
<package id="Mime-Detective" version="0.0.5" targetFramework="net462" />
|
||||||
<package id="MySql.Data" version="6.9.9" targetFramework="net462" />
|
<package id="MySql.Data" version="6.10.6" targetFramework="net462" />
|
||||||
<package id="Newtonsoft.Json" version="10.0.1" targetFramework="net462" />
|
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net462" />
|
||||||
<package id="System.Xml.XmlSerializer" version="4.3.0" targetFramework="net462" />
|
<package id="System.Xml.XmlSerializer" version="4.3.0" targetFramework="net462" />
|
||||||
<package id="WebGrease" version="1.6.0" targetFramework="net462" />
|
<package id="WebGrease" version="1.6.0" targetFramework="net462" />
|
||||||
</packages>
|
</packages>
|
@ -1,7 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\packages\xunit.runner.msbuild.2.2.0\build\net452\xunit.runner.msbuild.props" Condition="Exists('..\packages\xunit.runner.msbuild.2.2.0\build\net452\xunit.runner.msbuild.props')" />
|
<Import Project="..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props" Condition="Exists('..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props')" />
|
||||||
<Import Project="..\packages\xunit.runner.visualstudio.2.2.0\build\net20\xunit.runner.visualstudio.props" Condition="Exists('..\packages\xunit.runner.visualstudio.2.2.0\build\net20\xunit.runner.visualstudio.props')" />
|
<Import Project="..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.props" Condition="Exists('..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.props')" />
|
||||||
|
<Import Project="..\packages\xunit.runner.console.2.3.1\build\xunit.runner.console.props" Condition="Exists('..\packages\xunit.runner.console.2.3.1\build\xunit.runner.console.props')" />
|
||||||
|
<Import Project="..\packages\xunit.core.2.3.1\build\xunit.core.props" Condition="Exists('..\packages\xunit.core.2.3.1\build\xunit.core.props')" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
@ -46,17 +48,14 @@
|
|||||||
<HintPath>..\packages\xunit.abstractions.2.0.1\lib\net35\xunit.abstractions.dll</HintPath>
|
<HintPath>..\packages\xunit.abstractions.2.0.1\lib\net35\xunit.abstractions.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="xunit.assert, Version=2.2.0.3545, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
|
<Reference Include="xunit.assert, Version=2.3.1.3858, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\xunit.assert.2.2.0\lib\netstandard1.1\xunit.assert.dll</HintPath>
|
<HintPath>..\packages\xunit.assert.2.3.1\lib\netstandard1.1\xunit.assert.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="xunit.core, Version=2.2.0.3545, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
|
<Reference Include="xunit.core, Version=2.3.1.3858, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\xunit.extensibility.core.2.2.0\lib\netstandard1.1\xunit.core.dll</HintPath>
|
<HintPath>..\packages\xunit.extensibility.core.2.3.1\lib\netstandard1.1\xunit.core.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="xunit.execution.desktop, Version=2.2.0.3545, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
|
<Reference Include="xunit.execution.desktop, Version=2.3.1.3858, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\xunit.extensibility.execution.2.2.0\lib\net452\xunit.execution.desktop.dll</HintPath>
|
<HintPath>..\packages\xunit.extensibility.execution.2.3.1\lib\net452\xunit.execution.desktop.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -73,14 +72,23 @@
|
|||||||
<Name>Utilities</Name>
|
<Name>Utilities</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Analyzer Include="..\packages\xunit.analyzers.0.8.0\analyzers\dotnet\cs\xunit.analyzers.dll" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\packages\xunit.runner.visualstudio.2.2.0\build\net20\xunit.runner.visualstudio.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.visualstudio.2.2.0\build\net20\xunit.runner.visualstudio.props'))" />
|
<Error Condition="!Exists('..\packages\xunit.core.2.3.1\build\xunit.core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.core.2.3.1\build\xunit.core.props'))" />
|
||||||
<Error Condition="!Exists('..\packages\xunit.runner.msbuild.2.2.0\build\net452\xunit.runner.msbuild.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.msbuild.2.2.0\build\net452\xunit.runner.msbuild.props'))" />
|
<Error Condition="!Exists('..\packages\xunit.core.2.3.1\build\xunit.core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.core.2.3.1\build\xunit.core.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\xunit.runner.console.2.3.1\build\xunit.runner.console.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.console.2.3.1\build\xunit.runner.console.props'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.props'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props'))" />
|
||||||
</Target>
|
</Target>
|
||||||
|
<Import Project="..\packages\xunit.core.2.3.1\build\xunit.core.targets" Condition="Exists('..\packages\xunit.core.2.3.1\build\xunit.core.targets')" />
|
||||||
|
<Import Project="..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.targets" Condition="Exists('..\packages\xunit.runner.msbuild.2.3.1\build\net452\xunit.runner.msbuild.targets')" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
<Target Name="BeforeBuild">
|
<Target Name="BeforeBuild">
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="xunit" version="2.2.0" targetFramework="net462" />
|
<package id="xunit" version="2.3.1" targetFramework="net462" />
|
||||||
<package id="xunit.abstractions" version="2.0.1" targetFramework="net462" />
|
<package id="xunit.abstractions" version="2.0.1" targetFramework="net462" />
|
||||||
<package id="xunit.assert" version="2.2.0" targetFramework="net462" />
|
<package id="xunit.analyzers" version="0.8.0" targetFramework="net462" />
|
||||||
<package id="xunit.core" version="2.2.0" targetFramework="net462" />
|
<package id="xunit.assert" version="2.3.1" targetFramework="net462" />
|
||||||
<package id="xunit.extensibility.core" version="2.2.0" targetFramework="net462" />
|
<package id="xunit.core" version="2.3.1" targetFramework="net462" />
|
||||||
<package id="xunit.extensibility.execution" version="2.2.0" targetFramework="net462" />
|
<package id="xunit.extensibility.core" version="2.3.1" targetFramework="net462" />
|
||||||
<package id="xunit.runner.console" version="2.2.0" targetFramework="net462" developmentDependency="true" />
|
<package id="xunit.extensibility.execution" version="2.3.1" targetFramework="net462" />
|
||||||
<package id="xunit.runner.msbuild" version="2.2.0" targetFramework="net462" developmentDependency="true" />
|
<package id="xunit.runner.console" version="2.3.1" targetFramework="net462" developmentDependency="true" />
|
||||||
<package id="xunit.runner.visualstudio" version="2.2.0" targetFramework="net462" developmentDependency="true" />
|
<package id="xunit.runner.msbuild" version="2.3.1" targetFramework="net462" developmentDependency="true" />
|
||||||
|
<package id="xunit.runner.visualstudio" version="2.3.1" targetFramework="net462" developmentDependency="true" />
|
||||||
</packages>
|
</packages>
|
Loading…
Reference in New Issue
Block a user