Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Lightswitch调用MySQL存储过程?_Mysql_Sql_Sql Server_Visual Studio Lightswitch_Lightswitch 2012 - Fatal编程技术网

如何从Lightswitch调用MySQL存储过程?

如何从Lightswitch调用MySQL存储过程?,mysql,sql,sql-server,visual-studio-lightswitch,lightswitch-2012,Mysql,Sql,Sql Server,Visual Studio Lightswitch,Lightswitch 2012,我按照说明尝试从LightSwitch 2012应用程序中调用(无参数)MySQL SP。所引用的说明适用于SQL Server SP 以下是相关代码: using System; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Linq; namespace LightSwitchApplication { public partial class Sto

我按照说明尝试从LightSwitch 2012应用程序中调用(无参数)MySQL SP。所引用的说明适用于SQL Server SP

以下是相关代码:

using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;

namespace LightSwitchApplication
{
    public partial class StoredProcceduresService
    {
        partial void MakeMasterOperations_Inserting(MakeMasterOperation entity)
        {
            using (SqlConnection connection = new SqlConnection())
            {
                string connectionStringName = this.DataWorkspace.SystemInfo.Details.Name;
                connection.ConnectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;

                string storedProcedure = "make_master";
                using (SqlCommand command = new SqlCommand(storedProcedure, connection))
                {
                    command.CommandType = CommandType.StoredProcedure;
                    connection.Open();
                    command.ExecuteNonQuery();
                }            
            }
        this.Details.DiscardChanges();
        }
    }
}
这在
connection.Open()上失败带有SqlException“用户‘root’登录失败”。我知道userid和password是可以的,因为使用相同连接字符串的其他数据库操作在LightSwitch中可以正常工作


可以在LightSwitch中调用MySQL SP吗?如果是,怎么做?

嗯,我找到了答案

为了使用MySQL而不是SQL Server,必须在服务器项目中添加对MySQL.Data的引用,并将代码更改为:

    using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using MySql.Data.MySqlClient;

    namespace LightSwitchApplication
    {
        public partial class StoredProcceduresService
        {
            partial void MakeMasterOperations_Inserting(MakeMasterOperation entity)
            {
                using (MySqlConnection connection = new MySqlConnection())
                {
                    string connectionStringName = this.DataWorkspace.SystemInfo.Details.Name;
                    connection.ConnectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;

                    string storedProcedure = "make_master";
                    using (MySqlCommand command = new MySqlCommand(storedProcedure, connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        connection.Open();
                        command.ExecuteNonQuery();
                    }            
                }
            this.Details.DiscardChanges();
            }
        }
    }
糟糕的是,似乎没有一个公共基类允许根据所使用的DB服务器进行实例化