Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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
C# 如何在ASP.NET中通过ODBC连接将查询插入Excel?_C#_Asp.net_Excel - Fatal编程技术网

C# 如何在ASP.NET中通过ODBC连接将查询插入Excel?

C# 如何在ASP.NET中通过ODBC连接将查询插入Excel?,c#,asp.net,excel,C#,Asp.net,Excel,我有这样一个excel文件: 我有两个文本框(Fname,Lname),两个按钮(Search,Insert)和一个GridView 显示结果。 搜索按钮工作正常,但插入按钮不工作 “插入”按钮中的错误为: ERROR [HY000] [Microsoft][ODBC Excel Driver] Operation must use an updateable query. ASPX: 确保添加“只读=0” 使用更结构化的东西,如(您也可以在NuGet中找到它),这非常容易使用,并且在幕后

我有这样一个excel文件:

我有两个文本框(Fname,Lname),两个按钮(Search,Insert)和一个GridView 显示结果。 搜索按钮工作正常,但插入按钮不工作

“插入”按钮中的错误为:

ERROR [HY000] [Microsoft][ODBC Excel Driver] Operation must use an updateable query.
ASPX:

确保添加“只读=0”


使用更结构化的东西,如(您也可以在NuGet中找到它),这非常容易使用,并且在幕后使用ODBC可以解决错误,或者至少缩小可能的错误范围

Fname:<asp:TextBox ID="txtFname" runat="server"></asp:TextBox><br />
Lname:<asp:TextBox ID="txtLname" runat="server"></asp:TextBox><br />
<asp:Button ID="cmdSearch" runat="server" onclick="cmdSearch_Click" Text="Search" />
<asp:Button ID="cmdInsert" runat="server" onclick="cmdInsert_Click" Text="Insert" /><br />
<asp:GridView ID="GridView1" runat="server"></asp:GridView>
string conStr = @"Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};"+
    @"DBQ=|DataDirectory|\q.xlsx;";
protected void cmdInsert_Click(object sender, EventArgs e)
{
    OdbcConnection con = new OdbcConnection(conStr);
    con.Open();
    string query = "insert into [Sheet1$] (Fname,Lname) values (?,?)";
    OdbcCommand cmd = new OdbcCommand(query, con);
    cmd.Parameters.AddWithValue("?",txtFname.Text);
    cmd.Parameters.AddWithValue("?", txtLname .Text);
    cmd.ExecuteNonQuery();// has error
    con.Close();
}
protected void cmdSearch_Click(object sender, EventArgs e)
{
    OdbcConnection con = new OdbcConnection(conStr);
    con.Open();
    string query = "";
    query = "select * from [Sheet1$] where Fname=? or Lname=?";
    OdbcCommand cmd = new OdbcCommand(query, con);
    cmd.Parameters.AddWithValue("?", txtFname.Text);
    cmd.Parameters.AddWithValue("?", txtLname.Text);
    GridView1.DataSource = cmd.ExecuteReader();
    GridView1.DataBind();
    con.Close();
}
string conStr = @"Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};"+
@"DBQ=|DataDirectory|\q.xlsx;ReadOnly=0;";