Questo errore è dovuto al fatto che, molto probabilmente, non hai impostato, all'interno del tuo DataBase, un campo con chiave primaria.
Credo possa risultarti utile il seguente link:
http://dbforums.com/arch/210/2003/8/876373
Non impostando nessun campo a chiave primaria, viene sollevata un'eccezione (il metodo restituisce false...). Le ragioni di tutto ciò sono spiegate nel link che ti ho fornito.
Comunque il codice che hai postato, se ciò può "tranquillizzarti", funziona correttamente:
codice:
<%@ CompilerOptions='/R:"C:\Programmi\Microsoft.NET\Odbc.Net\Microsoft.Data.Odbc.dll"' %>
<%@ Import Namespace = "Microsoft.Data.Odbc" %>
<%@ Import Namespace="System.Data" %>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
Boolean testBol = testFunction();
Messaggio.Text = Convert.ToString(testBol);
}
public Boolean testFunction()
{
// Imposti qui la tua connessione...
OdbcConnection objCn = new OdbcConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
objCn.Open();
String strSql = "SELECT * FROM Tabella";
// Supponendo che questo sia il nome del file...
String aFile = "nomeFile.exe";
DataSet l_dataset = new DataSet();
OdbcDataAdapter l_adapter = new OdbcDataAdapter(strSql, objCn);
try
{
// Esegue la Query sulla connessione aperta
l_adapter.Fill(l_dataset);
l_dataset.Tables[0].TableName = "Upload_RefertoDettaglio";
l_dataset.Tables["UPLOAD_REFERTODETTAGLIO"].Rows[0]["Colonna"] = aFile;
OdbcCommandBuilder l_builder = new OdbcCommandBuilder();
l_builder.DataAdapter = l_adapter;
// ok, eseguiamo l'update
l_adapter.Update(l_dataset,"Upload_RefertoDettaglio");
return true;
}
catch (System.Exception Errore)
{
// Gestione Errore
String sErr = Errore.Message;
return false;
}
objCn.Close();
}
</script>
<body>
<h3>
<asp:Label runat="server" id="Messaggio" />
</h3>
</body>
Spero di esserti stato d'aiuto.