PDA

View Full Version : update نشدن بانک اطلاعاتی



sara.pazhrang
پنج شنبه 17 آبان 1386, 11:39 صبح
سلام دوستان. خواهش می کنم کمکم کنید. به نظر شما کد زیر چه مشکلی داره که آپدیت رو انجام نمیده؟؟؟قابل ذکره که خواندن از بانک اطلاعاتی با رشته اتصال l_connectionString مشکلی نداره.


public void updateTableContentForChanges(string g_tableName, DataSet g_dataSet)
{

DataSet l_changesDataSet=g_dataSet.GetChanges();
if (l_changesDataSet == null)
return;
string l_CommandString="Select * From "+g_tableName;
SqlDataAdapter da = new SqlDataAdapter(l_CommandString, l_connectionString);
SqlConnection l_sqlConnection = new SqlConnection(l_connectionString);
SqlCommandBuilder builder = new SqlCommandBuilder(da);

//Initialize UPDATE Command.
da.UpdateCommand = new SqlCommand("UPDATE " + g_tableName, l_sqlConnection);

da.TableMappings.Add("Table", g_tableName);
if (da == null)
return;
l_sqlConnection.Open();
da.Update(l_changesDataSet,g_tableName);
l_sqlConnection.Close();
g_dataSet.AcceptChanges();
g_dataSet.Tables[g_tableName].Clear();
da.Fill(g_dataSet, g_tableName);

}

sara.pazhrang
یک شنبه 20 آبان 1386, 08:52 صبح
ببخشید کسی نمی تونه کمکم کنه؟

hdv212
یک شنبه 20 آبان 1386, 09:16 صبح
//Initialize UPDATE Command.
da.UpdateCommand = new SqlCommand("UPDATE " + g_tableName, l_sqlConnection);
انگاری یادت رفته بقیه ی دستور Update رو بنویسی، دستوری که شما نوشتی اینطوری شده :

Update g_tableName
پس بقیه ش چی ؟

sara.pazhrang
یک شنبه 20 آبان 1386, 09:52 صبح
می دونم برای دستور آپدیت باید مشخص بشه که کدوم فیلدها میخواد آپدیت بشه . مثل دستور زیر:

"UPDATE TableName SET Field1 = @field1, Field2 = @field2 WHERE ID = @id"
بعد هم باید با دستور زیر به اونها مقدار بدم:

.SQLDataAdapter1.InsertCommand.Parameters.AddWithV alue("@field1", typeof(string)).SourceColumn = "Field1";

اما تابعی که من استفاده کردم کل است و برای همه جدولهاست.مقداری که این تابع می گیره دیتاست و تغییراتی ست که تو اون جدول رخ داده .تازه نام جدول هم مشخص نیست و برای آپدیت تمام جداول میخوام از همین تابع استفاده کنم .اونوقت تو ادامه دستور آپدیت چی باید بنویسم.
من هر جا که جستجو کردم در قسمت update مشخص بود که کدوم فیلدها از کدوم جدول می خواد آپدیت بشه .اما اینجا فقط نام جدولو به صورت متغیر دارم با دیتاستی که تغییر داده شده است. آیا برای همچین چیزی می تونم دستور update بنویسم؟یا اینکه باید برای هر جدول جداگانه بنویسم؟