使用conncetionsstring到msaccess数据库我们运行错误显示关键字不支持提供程序 [英] conncetionsstring to msaccess database is used wehn i run error shows keyword not supported provider

查看:120
本文介绍了使用conncetionsstring到msaccess数据库我们运行错误显示关键字不支持提供程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用ms访问创建连接字符串并将记录保存在ms访问数据库中。



我的代码如下全局函数(类文件) ;

  private   string  Accessconncetionstring = < span class =code-string>  Provider = microsoft.jet.OLEDB.4.0; Data Source = Data \\HIMTTESTing.mdb ; 

public void BindAccessConn()
{
con = new SqlConnection();
con.ConnectionString = Accessconncetionstring;
con.Open();
}

public void InsertAccessData( string SQL)
{
try
{
BindAccessConn();
cmd = new SqlCommand(SQL,con);
cmd.ExecuteReader();
}
catch (例外e1)
{
错误= e1.Message.ToString();
}
}

public SqlDataReader ReadAcessSql( string SQL)
{

con = new SqlConnection(Accessconncetionstring);
con.Open();
cmd = new SqlCommand(SQL,con);
dr = cmd.ExecuteReader();
return (dr);
}

public string CntAcessString()
{
return Accessconncetionstring;
}

// 保存记录代码如下;

private GlobalFunction GFun = new GlobalFunction();
private string sql;


private void BtnSaves_Click( object sender,EventArgs e)
{
SaveDetails();
}

private void SaveDetails()
{
// 保存编码开始
尝试
{
string sql;
for int i = 0 ; i < datagridView.RowCount; i ++)
{
for int j = 2 ; j < datagridView.ColumnCount; j ++)
{
if (datagridView [j,i] .Value!= DBNull.Value&& datagridView [j,i] .Value!= && datagridView [j,i]。值!= null

{
sql = < span class =code-string> insert into Tb_SCh_TIme_Table(Date,Session,Course,Faculty_Code) + 价值es(' + Convert.ToDateTime(datagridView.Rows [i] .Cells [ 0 ]。Value.ToString())+ ',' + int .Parse(datagridView。行[i]。细胞[ 1 ]。Value.ToString())+ ',' + datagridView [j,i] .Value.ToString()+ ',' + datagridView.Columns [j] .HeaderText.ToString()+ ;
尝试
{
GFun.Error = ;
GFun.InsertAccessData(sql);
if (GFun.Error.ToString()!=
{
MessageBox.Show(GFun.Error.ToString(), 错误);
return ;
}
}

catch (Ex Ex)
{
MessageBox.Show( Ex.ToString(), 错误);
}
}
}
}
}
catch (例外Ex1)
{
MessageBox.Show(Ex1.ToString(), 错误,MessageBoxButtons 。好);
}
}



在运行时,输入所有记录并点击保存按钮。

错误显示如下;



KEYWORD NOT SUPPORTED''PROVIDER'';



我认为下面的问题如下:



 private string Accessconncetionstring =Provider = microsoft.jet.OLEDB.4.0;数据源= Data \\HIMTTESTing.mdb; < br /> 





HIMTTESTing是ms访问数据库名称。在那个数据库中有表格。



从上面的代码中,出现了什么错误?我能怎么做?帮助我。

解决方案

System.Data.SqlClient.SQLConnection 的文档说它将被用于连接到SQL Server。



我认为你应该使用 System.Data.OleDb.OleDbConnection 而不是 System.Data.SqlClient.SQLConnection

I am creating a connection string using ms access and saving the record in ms access data base.

My code is as follows in global function(Class file);

private string Accessconncetionstring ="Provider= microsoft.jet.OLEDB.4.0;Data Source=Data\\HIMTTESTing.mdb";

public void BindAccessConn()
{
      con = new SqlConnection();
      con.ConnectionString = Accessconncetionstring;
      con.Open();
}

public void InsertAccessData(string SQL)
{
      try
      {
          BindAccessConn();
          cmd = new SqlCommand(SQL, con);
          cmd.ExecuteReader();
      }
      catch (Exception e1)
      {
          Error = e1.Message.ToString();
      }
}

public SqlDataReader ReadAcessSql(string SQL)
{

      con = new SqlConnection(Accessconncetionstring);
      con.Open();
      cmd = new SqlCommand(SQL, con);
      dr = cmd.ExecuteReader();
      return (dr);
}

public string CntAcessString()
{
     return Accessconncetionstring;
}

//Save record code as follows;

private GlobalFunction GFun = new GlobalFunction();
private string sql;


private void BtnSaves_Click(object sender, EventArgs e)
{
      SaveDetails();
}

private void SaveDetails()
{
      //save coding starts
      try
      {
          string sql;
          for (int i = 0; i < datagridView.RowCount; i++)
          {
              for (int j = 2; j < datagridView.ColumnCount; j++)
              {
                    if(datagridView[j, i].Value != DBNull.Value && datagridView[j, i].Value !=  "" && datagridView[j, i].Value != null )

                  {
                      sql = "insert into Tb_SCh_TIme_Table(Date,Session,Course,Faculty_Code)" + " values ('" + Convert.ToDateTime(datagridView.Rows[i].Cells[0].Value.ToString()) + "', '" + int.Parse(datagridView.Rows[i].Cells[1].Value.ToString()) + "', '" + datagridView[j, i].Value.ToString() + "','" + datagridView.Columns[j].HeaderText.ToString() + "')";
                      try
                      {
                          GFun.Error = "";
                          GFun.InsertAccessData(sql);
                          if (GFun.Error.ToString() != "")
                          {
                              MessageBox.Show(GFun.Error.ToString(), "Error");
                              return;
                          }
                      }

                      catch (Exception Ex)
                      {
                          MessageBox.Show(Ex.ToString(), "Error");
                      }
                  }
              }
          }
      }
      catch (Exception Ex1)
      {
          MessageBox.Show(Ex1.ToString(), "Error", MessageBoxButtons.OK);
      }
}


In run time, all records are entered and the save button is clicked.
Error shows as follows;

KEYWORD NOT SUPPORTED ''PROVIDER'';

I THINK IN THE BELOW LINE IS PROBLEM AS FOLLOWS.

private string Accessconncetionstring ="Provider= microsoft.jet.OLEDB.4.0;Data Source=Data\\HIMTTESTing.mdb"; <br />



HIMTTESTing is ms access data base name. In that database tables are there.

From my above code, what is the the mistake? How can i do? Help me.

解决方案

The documentation for System.Data.SqlClient.SQLConnection says it is to be used for connecting to SQL Server.

I think you should use System.Data.OleDb.OleDbConnection instead of System.Data.SqlClient.SQLConnection.


这篇关于使用conncetionsstring到msaccess数据库我们运行错误显示关键字不支持提供程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆