Tag: mysql

MySQLentity framework错误 – 在配置中找不到指定的商店提供程序,或者无效

我在C#中编写了一个程序集来执行MySQL数据库的所有数据访问。 我在C#winform桌面应用程序中成功使用了程序集(已编译的dll)。 但它仅适用于安装了“MySQL Connector Net 6.4.4”的PC。 我试图在我的asp.net网站项目中使用相同的程序集。 首先我得到一个关于缺少连接字符串的错误。 通过将MySQL连接字符串添加到web.config文件可以轻松解决这个问题。 我现在得到这个错误(下面列出的堆栈跟踪),我已经尝试将以下dll添加到我的bin文件夹来解决它,但它不起作用。 MySql.Data.dll MySql.Data.Entity.dll MySql.Web.dll System.Web.HttpUnhandledException (0x80004005): Exception of type ‘System.Web.HttpUnhandledException’ was thrown. —> System.ArgumentException: The specified store provider cannot be found in the configuration, or is not valid. —> System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed. at System.Data.Common.DbProviderFactories.GetFactory(String […]

如何将表作为参数传递给MySqlCommand?

我正在创建一个方法,通过传递搜索字段从任何表中选择id。 private int SelectId(string tabela, string campo, string valor) { int id = 0; using (command = new MySqlCommand()) { command.Connection = conn; command.Parameters.Add(“@tabela”, MySqlDbType.).Value = tabela; command.Parameters.Add(“@campo”, MySqlDbType.Text).Value = campo; command.Parameters.Add(“@valor”, MySqlDbType.VarChar).Value = valor; command.CommandText = “SELECT `id` FROM @tabela WHERE @campo=@valor;”; try { id = (int)command.ExecuteScalar(); } catch (MySqlException ex) { MessageBox.Show(ex.Number + […]

为什么我在Listbox中获得“System.Data.DataRowView”而不是真值?

我希望有人可以提供帮助。 但每当我运行我的代码并尝试查看highscore我在列表框中返回的是System.Data.DataRowView 。 谁能明白为什么? 码: MySqlConnection myConn = new MySqlConnection(connStr); string sqlStr = “SELECT CONCAT(Name, ‘ ‘, Score) as NameAndScore ” + “FROM highscore ORDER BY Score DESC”; MySqlDataAdapter dAdapter = new MySqlDataAdapter(sqlStr, myConn); DataTable dTable = new DataTable(); dAdapter.Fill(dTable); dAdapter.Dispose(); lstNames.DisplayMember = “NameAndScore”; lstNames.DataSource = dTable;

如何创建初始化程序来创建和迁移mysql数据库?

我一直在学习如何使用EF一个星期左右,并且我一直坚持创建/更新我的数据库的问题。 如果不存在,我可以创建一个初始化器来创建数据库: static class Program { static void Main() { Database.SetInitializer(new GumpDatabaseInitializer()); …. class GumpDatabaseInitializer : CreateDatabaseIfNotExists { public GumpDatabaseInitializer() { } protected override void Seed(GumpDatabase context) { context.Database.ExecuteSqlCommand(“CREATE UNIQUE INDEX Name ON Stations (Name)”); // Other stuff } } 或者我可以创建配置来迁移数据库 static class Program { static void Main() { Database.SetInitializer(new MigrateDatabaseToLatestVersion()); …. internal sealed class […]

带有MySQL INSERT参数的C#

祝大家好,我正在使用Visual C#2010和MySQL版本5.1.48社区。 我希望你能帮我解决这个问题。 我发现它不适合我。 我错过了什么? string connString = ConfigurationManager.ConnectionStrings[“default”].ConnectionString; MySqlConnection conn = new MySqlConnection(connString); conn.Open(); MySqlCommand comm = conn.CreateCommand(); comm.CommandText = “INSERT INTO room(person,address) VALUES(@person, @address)”; comm.Parameters.Add(“@person”, “Myname”); comm.Parameters.Add(“@address”, “Myaddress”); comm.ExecuteNonQuery(); conn.Close(); 当我尝试编译它。 它说: Person列不能为null 编辑: 但是,当我尝试这个代码。 comm.CommandText = “INSERT INTO room(person,address) VALUES(‘Myname’, ‘Myaddress’)”; 但是这段代码很容易受到sql注入攻击,但它有效,不会给我一个错误。 编辑: 我试着用这个。 我发现它在这里,所以我认为它会工作,但给了我这个错误 索引(从零开始)必须大于或等于零且小于参数列表的大小。 任何的想法? string a = “myname”; MySqlCommand […]

MySql Last Insert ID,Connector .net

我正在使用MySql Connector .net,我需要获取上一个查询生成的插入ID。 现在,我假设MySqlHelper.ExecuteNonQuery的返回值应该是最后一个插入ID,但它只返回1。 我正在使用的代码是: int insertID = MySqlHelper.ExecuteNonQuery(Global.ConnectionString, “INSERT INTO test SET var = @var”, paramArray); 但是, insertID始终为1.我尝试创建MySql连接并手动打开/关闭,这导致了相同的行为

不再支持使用旧密码进行身份validation,请使用4.1样式密码

我的网站有hostgator,我想用C#windows应用程序访问mysql数据库但是当我尝试连接时收到了这条消息: “不再支持使用旧密码进行身份validation,请使用4.1样式密码” 我试过给定解决方案: SET SESSION old_passwords=0; SET PASSWORD FOR user@host=PASSWORD(‘your pw here’); 第一个查询执行成功但我在第二个查询执行时收到错误“用户@主机拒绝访问”。 我无法理解为什么会出现这个问题。 我正在使用MySQL-connecter-net 6.6.5。 我成功地将我的数据库与MySql workbench 5.2.47连接起来。 任何人都可以帮助我,我可以做更多吗? 我已联系我的托管网站,他们对my.cnf文件进行了更改,以使用4.1样式密码。 我能够连接mysql mysql -u -p -h ; 但是当我尝试使用mySQL连接器网6.6.5连接C#时,我再次遇到此错误。 我在Windows 8 64位上使用Visual Studio 2012和MySQL连接器6.6.5。 这是我用来连接的代码 using MySQL.Data.MySQLClient; private void button1_Click(object sender, EventArgs e) { string connStr = String.Format(“server={0};port={1};uid={2};password={3};database={4}”, txtserver.Text, txtPort.Text, txtUser.Text, txtPassword.Text, txtDatabase.Text); conn = new […]

将DataTable批量复制到MySQL(类似于System.Data.SqlClient.SqlBulkCopy)

我正在将我的程序从Microsoft SQL Server迁移到MySQL。 一切正常,除了批量复制的一个问题。 在使用MS SQL的解决方案中,代码如下所示: connection.Open(); SqlBulkCopy bulkCopy = new SqlBulkCopy(connection); bulkCopy.DestinationTableName = “testTable”; bulkCopy.WriteToServer(rawData); 现在我尝试为MySQL做类似的事情。 因为我认为会有糟糕的性能我不想将DataTable写入CSV文件并使用MySqlBulkLoader类从那里进行插入。 任何帮助将受到高度赞赏。

ASP.NET使用SqlConnection连接MySQL

这是web.config保存的连接字符串: 这是连接数据库的代码: protected bool CheckPasswordBySqlServer(string strEmail, string strPsw) { if (strEmail.ToLower() == “admin”) { return false; } string str = “select id,Rank,RankEnc,ParentUser,Company from tbl_User where userName=@UserName and password1=@password”; private string strConn = ConfigurationManager.AppSettings[“conn”].ToString(); SqlConnection sqlConnection = new SqlConnection(strConn); bool flag = false; try { try { sqlConnection.Open(); SqlCommand sqlCommand = new SqlCommand(str, sqlConnection); sqlCommand.Parameters.AddWithValue(“UserName”, strEmail); […]

使用C#获取插入行的id

我有一个查询要在表中插入一行,该表有一个名为ID的字段,该字段使用列上的AUTO_INCREMENT填充。 我需要为下一部分function获取此值,但是当我运行以下操作时,即使实际值不为0,它也始终返回0: MySqlCommand comm = connect.CreateCommand(); comm.CommandText = insertInvoice; comm.CommandText += “\'” + invoiceDate.ToString(“yyyy:MM:dd hh:mm:ss”) + “\’, ” + bookFee + “, ” + adminFee + “, ” + totalFee + “, ” + customerID + “)”; int id = Convert.ToInt32(comm.ExecuteScalar()); 根据我的理解,这应该返回ID列,但每次只返回0。 有任何想法吗? 编辑: 当我跑: “INSERT INTO INVOICE (INVOICE_DATE, BOOK_FEE, ADMIN_FEE, TOTAL_FEE, CUSTOMER_ID) VALUES (‘2009:01:01 […]